博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在ROS中开始自主机器人仿真 - 4 建立自己的自主机器人URDF模型
阅读量:6689 次
发布时间:2019-06-25

本文共 5777 字,大约阅读时间需要 19 分钟。

要建立自己的自主机器人,首先,必须要建立自己的机器人模型,URDFUnified Robot Description Format)模型。

part 3 建立自主机器人URDF模型

机器人URDF模型主要由两个文件组成:.xacro 是主文件,包含URDF项,包括关节,连杆;.gazebo包含gazebo的具体信息以便在gazebo中仿真。 

例子请见:

以下工程的源码下载地址请见: 

使用方法主要包括以下三个部分:

rviz查看机器人

roslaunch neurobot_description neurobot_rviz.launch

 

gazebo 仿真

groslaunch neurobot_gazebo neurobot_world.launch

 

控制机器人运动

rostopic pub /cmd_vel geometry_msgs/Twist "linear:  x: 0.1  y: 0.0  z: 0.0angular:  x: 0.0  y: 0.0  z: 0.0"

 

如何一步步设计自己的工程请见以下部分的详细说明:

1. 创建工程

catkin_create_pkg neurobot_description

 

2. 差分驱动模型

neurobot_description/urdf/├── macros.xacro   帮助简化的宏├── materials.xacro  材料说明├── neurobot.gazebo gazebo具体信息└── neurobot.xacro URDF 主文件

 

neurobot.xacro中添加chassis, wheels,

添加chassis

0 0 0.1 0 0 0
0
0
1.0
1.0
0
0
1.0
1.0

 

 

添加差分驱动轮子

 

添加hinges链接wheels和chassis

 

 

要实现自主导航还需要添加camera和laser,有了激光器和摄像头我们才能让机器人去感知外部世界。

添加camera

 

添加laser

 

 

3. 添加模型插件

只有添加了模型插件,我们才能编写代码控制机器人的运动,采用信息。插件是模型和代码的桥梁。

neurobot.gazebo中添加gazebo具体描述信息和插件。

差分驱动

 

 

camera

Gazebo/Green
30.0
1.3962634
800
800
R8G8B8
0.02
300
true
0.0
neurobot/camera1
image_raw
camera_info
camera
0.07
0.0
0.0
0.0
0.0
0.0

 

laser

laser的几何信息采用mesh文件hokuyo.dae放在meshes文件夹中,

0 0 0 0 0 0
false
40
720
1
-1.570796
1.570796
0.10
30.0
0.01
gaussian
0.0
0.01
/neurobot/laser/scan
hokuyo

 

 

gazebo仿真材料信息

Gazebo/Orange
Gazebo/Blue
Gazebo/Blue

 

 

4.机器人控制

终于到了我们可以控制自己建立的机器人了。

在rviz中查看自己的机器人

roslaunch neurobot_description neurobot_rviz.launch

 

rviz_neurobot

neurobot_rviz.launch 文件如下

 

 

在gazebo中加载机器人并控制机器人运动

依然采用在turtlebot中使用的world场景,加载机器人。

roslaunch neurobot_gazebo neurobot_world.launch

 

gazebo_neurobot

通过如下命令

rostopic list

 

我们可以找到非常重要的四个topic

/cmd_vel  速度控制命令/neurobot/camera1/image_raw 图像信息/neurobot/laser/scan 激光数据/odom 里程计

 

使用如下命令便可以控制机器人运动了,fancy。
rostopic pub /cmd_vel geometry_msgs/Twist "linear:  x: 0.1  y: 0.0  z: 0.0angular:  x: 0.0  y: 0.0  z: 0.0"

 

 

也可以使用我们之前turtlebot中使用的keyboard_teleop.launch 和keyop.launch, 将topic主题映射到/cmd_vel

References:

转载于:https://www.cnblogs.com/taiping/p/6721264.html

你可能感兴趣的文章
解决ftp登录问题:500 OOPS: cannot change directory:/home/xxx 500 OOPS: child died
查看>>
MongoDB在Windows下安装配置
查看>>
Eclipse 项目有红感叹号、小红叉
查看>>
如何使用Dev C++调试(debug)c程序
查看>>
Windows Phone开发(1):概论
查看>>
如何修改博客样式
查看>>
C#语法之泛型
查看>>
ArcGIS API for Silverlight中加载Google地形图(瓦片图)
查看>>
如何生成excel文件作为图像识别结果
查看>>
Liferay-Activiti 功能介绍 (新版Liferay7基本特性)
查看>>
Dom4j解析xml
查看>>
ubuntu 安装过程记录
查看>>
my blog zen :分享所学,backup一切~
查看>>
武侠-event
查看>>
学习C# delegate和C# event
查看>>
AD域的唯一ID字段uSNCreated
查看>>
Ubuntu 12.04中文输入法的安装
查看>>
jQuery的.live()和.die()[转]
查看>>
hdu_2002_计算球体积_解题报告
查看>>
连接数据库通过配置文件app.config
查看>>