URDF练习

需求描述:

创建一个四轮圆柱状机器人模型,机器人参数如下,底盘为圆柱状,半径 10cm,高 8cm,四轮由两个驱动轮和两个万向支撑轮组成,两个驱动轮半径为 3.25cm,轮胎宽度1.5cm,两个万向轮为球状,半径 0.75cm,底盘离地间距为 1.5cm(与万向轮直径一致)

实现流程:

创建机器人模型可以分步骤实现

新建 urdf 文件,并与 launch 文件集成

搭建底盘

在底盘上添加两个驱动轮

在底盘上添加两个万向轮

添加项目辅助包

urdf xacro

查看工作文档目录

创建一个机器人模型:semo02_date.urdf.xacro

创建摄像头xacro 文件:semo03_date.urdf.xacro

创建雷达xacro 文件:semo_04_date.urdf.xacro

组合底盘摄像头与雷达的 xacro 文件:car.urdf.xacro

创建launch 文件:car_ee.launch

上面使用的 /config/control.yaml

添加 arbotix 所需的配置文件:control.yaml

# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....

# 因此,根 name 是 controller

controllers: {

# 单控制器设置

base_controller: {

#类型: 差速控制器

type: diff_controller,

#参考坐标

base_frame_id: base_footprint,

#两个轮子之间的间距

base_width: 0.2,

#控制频率

ticks_meter: 2000,

#PID控制参数,使机器人车轮快速达到预期速度

Kp: 12,

Kd: 12,

Ki: 0,

Ko: 50,

#加速限制

accel_limit: 1.0

}

}

上面使用的:showmycar.rviz"

中的showmycar.rviz代码

Panels:

- Class: rviz/Displays

Help Height: 78

Name: Displays

Property Tree Widget:

Expanded:

- /Global Options1

- /Status1

- /RobotModel1

- /RobotModel1/Status1

Splitter Ratio: 0.5

Tree Height: 719

- Class: rviz/Selection

Name: Selection

- Class: rviz/Tool Properties

Expanded:

- /2D Pose Estimate1

- /2D Nav Goal1

- /Publish Point1

Name: Tool Properties

Splitter Ratio: 0.5886790156364441

- Class: rviz/Views

Expanded:

- /Current View1

Name: Views

Splitter Ratio: 0.5

- Class: rviz/Time

Name: Time

SyncMode: 0

SyncSource: ""

Preferences:

PromptSaveOnExit: true

Toolbars:

toolButtonStyle: 2

Visualization Manager:

Class: ""

Displays:

- Alpha: 0.5

Cell Size: 1

Class: rviz/Grid

Color: 160; 160; 164

Enabled: true

Line Style:

Line Width: 0.029999999329447746

Value: Lines

Name: Grid

Normal Cell Count: 0

Offset:

X: 0

Y: 0

Z: 0

Plane: XY

Plane Cell Count: 10

Reference Frame:

Value: true

- Alpha: 1

Class: rviz/RobotModel

Collision Enabled: false

Enabled: true

Links:

All Links Enabled: true

Expand Joint Details: false

Expand Link Details: false

Expand Tree: false

Link Tree Style: Links in Alphabetic Order

base_link:

Alpha: 1

Show Axes: false

Show Trail: false

Value: true

Name: RobotModel

Robot Description: robot_description

TF Prefix: ""

Update Interval: 0

Value: true

Visual Enabled: true

Enabled: true

Global Options:

Background Color: 48; 48; 48

Default Light: true

Fixed Frame: base_link

Frame Rate: 30

Name: root

Tools:

- Class: rviz/Interact

Hide Inactive Objects: true

- Class: rviz/MoveCamera

- Class: rviz/Select

- Class: rviz/FocusCamera

- Class: rviz/Measure

- Class: rviz/SetInitialPose

Theta std deviation: 0.2617993950843811

Topic: /initialpose

X std deviation: 0.5

Y std deviation: 0.5

- Class: rviz/SetGoal

Topic: /move_base_simple/goal

- Class: rviz/PublishPoint

Single click: true

Topic: /clicked_point

Value: true

Views:

Current:

Class: rviz/Orbit

Distance: 10

Enable Stereo Rendering:

Stereo Eye Separation: 0.05999999865889549

Stereo Focal Distance: 1

Swap Stereo Eyes: false

Value: false

Field of View: 0.7853981852531433

Focal Point:

X: 0

Y: 0

Z: 0

Focal Shape Fixed Size: true

Focal Shape Size: 0.05000000074505806

Invert Z Axis: false

Name: Current View

Near Clip Distance: 0.009999999776482582

Pitch: 0.5103980302810669

Target Frame:

Yaw: 5.4685821533203125

Saved: ~

Window Geometry:

Displays:

collapsed: false

Height: 1016

Hide Left Dock: false

Hide Right Dock: false

QMainWindow State: 000000ff00000000fd0000000400000000000001560000035afc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000035a000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000035afc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000035a000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004c70000035a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000

Selection:

collapsed: false

Time:

collapsed: false

Tool Properties:

collapsed: false

Views:

collapsed: false

Width: 1848

X: 72

Y: 27

使用命令运行

source ./devel/setup.bash

roslaunch urdlee car_ee.launch

查看节点命令:rostopic list

/clicked_point

/cmd_vel

/diagnostics

/initialpose

/joint_states

/move_base_simple/goal

/odom

/rosout

/rosout_agg

/tf

/tf_static

使用:odom运行小车

运行命令

代码自动运行

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

键盘手动运行

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: