目录
一 . 参考网上资料,在ROS中完成一个机器小车的模型创建,传感器配置,仿真环境的设置,并控制机器小车进行运动。
参考:
【Autolabor初级教程】ROS机器人入门 【Autolabor初级教程】ROS机器人入门_哔哩哔哩_bilibili
Scout mini 仿真指南 松灵学院 | Scout mini 仿真指南_松灵开发社区-CSDN博客
二. 参考课件资料,在ROS中利用ROS工具完成你手机广角津贴(畸变较为严重)的标定,写出详细过程和输出结果。
三. 在ROS下,下载编译orbslam2代码,并在kitti数据集的一个序列图像中进行实验。
一、功能包创建
新建一个项目文件夹,放接下来要做的文件
在文件夹打开终端,输入以下代码
mkdir -p catkin_ws/src
cd catkin_ws/src
catkin_init_workspace
导入依赖,在src文件夹输入以下代码
catkin_create_pkg jubot_demo urdf xacro #创建功能包、添加依赖
cd jubot_demo/
mkdir urdf
mkdir launch
mkdir meshes #存放渲染机器人模型的文件
mkdir config #存放rviz配置的文件
打开VS Code写两个文件jubot_base.urdf
(放urdf文件夹下)display_jubot_base_urdf.launch
(放launch文件夹下)
config里的rviz文件是保存生成的,不用写
二、urdf文件
Unified Robot Description Format,统一机器人描述格式,简称为URDF
模型的环节(link)与关节(joint)坐标关系,跟我的代码模型不匹配,仅供理解关系:
在基础模型之上,我们为机器人添加尺寸大小。由于每个环节的参考系都位于该环节的底部,关节也是如此,所以在表示尺寸大小时,只需要描述其相对于连接的关节的相对位置关系即可。URDF中的 origin 域就是用来表示这种相对关系。
如果我们为机器人的关节添加 axis 旋转轴参数,那么该机器人模型就可以具备基本的运动学参数。
注意代码中不能有中文注释
<?xml version="1.0" ?>
<robot name="jubot">
<!--base_car-->
<link name="base_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<geometry>
<cylinder radius="0.20" length="0.16"/>
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1"/>
</material>
</visual>
</link>
<!--left_wheel-->
<joint name="left_wheel_joint" type="continuous">
<origin xyz="0.0 0.19 -0.05" rpy="0.0 0.0 0.0"/>
<parent link="base_link"/>
<child link="left_wheel_link"/>
<axis xyz="0.0 1.0 0.0"/>
</joint>
<link name="left_wheel_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="1.5707 0.0 0.0"/>
<geometry>
<cylinder radius="0.06" length="0.025"/>
</geometry>
<material name="white">
<color rgba="1 1 1 0.9"/>
</material>
</visual>
</link>
<!--right_wheel-->
<joint name="right_wheel_joint" type="continuous">
<origin xyz="0.0 -0.19 -0.05"/>
<parent link="base_link"/>
<child link="right_wheel_link"/>
<axis xyz="0.0 1.0 0.0"/>
</joint>
<link name="right_wheel_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="1.5707 0.0 0.0"/>
<geometry>
<cylinder radius="0.06" length="0.025"/>
</geometry>
<material name="white">
<color rgba="1 1.0 1.0 0.9"/>
</material>
</visual>
</link>
<!--front_caster-->
<joint name="front_caster_joint" type="continuous">
<origin xyz="0.18 0.0 -0.095" rpy="0.0 0.0 0.0"/>
<parent link="base_link"/>
<child link="front_caster_link"/>
<axis xyz="0.0 1.0 0.0"/>
</joint>
<link name="front_caster_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<geometry>
<sphere radius="0.015"/>
</geometry>
<material name="black">
<color rgba="0.0 0.0 0.0 0.95"/>
</material>
</visual>
</link>
<!--back_caster-->
<joint name="back_caster_joint" type="continuous">
<origin xyz="-0.18 0.0 -0.095" rpy="0.0 0.0 0.0"/>
<parent link="base_link"/>
<child link="back_caster_link"/>
<axis xyz="0.0 1.0 0.0"/>
</joint>
<link name="back_caster_link">
<visual>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<geometry>
<sphere radius="0.015"/>
</geometry>
<material name="black">
<color rgba="0.0 0.0 0.0 0.95"/>
</material>
</visual>
</link>
</robot>
三、launch文件
display_jubot_base_urdf.launch 代码如下(示例):
<launch>
<!-- 设置机器人模型路径参数 -->
<param name="robot_description" textfile="$(find jubot_demo)/urdf/jubot_base.urdf" />
<!-- 运行joint_state_publisher节点,发布机器人的关节状态 -->
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<!-- 运行robot_state_publisher节点,发布tf -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- 运行rviz可视化界面 -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find jubot_demo)/config/jubot_urdf.rviz" required="true" />
</launch>
四、图形化显示
安装一个检查urdf语法的工具:
sudo apt-get install liburdfdom-tools
在urdf文件夹下打开终端检查语法:
check_urdf jubot_base.urdf
在urdf文件夹下打开终端,图形化显示URDF模型
urdf_to_graphiz jubot_base.urdf
此时会生成两个文件,打开pdf文件
五、RVIZ可视化
启动launch文件roslaunch jubot_demo display_jubot_base_urdf.launch
在启动launch文件之前,需要编译配置一下:
(1)退到主目录catkin_ws
下,执行catkin_make
(2)执行成功之后,再执行catkin_make install
(3)在主目录catkin_make
下配置环境变量source devel/setup.bash
(4)检测环境变量是否配置成功echo $ROS_PACKAGE_PATH
到此,终于可以启动launch文件了
进入src
目录下,输入命令roslaunch jubot_demo/launch/display_jubot_base_urdf.launch
,窗口自动打开了RVIZ
在global options
下的Fixed Frame
改为base_link
,
然后我们看到在屏幕左下方有一个
add
按钮,单击,添加robotmodel
,确定以后,就会发现图形正确显示了。
以上圆形步骤就完成了, 初步实现了urdf模型+rviz可视化。
总结
在本章文章创建项目的过程中,要注意环境的配置,若是环境没有配置,在编译运行的时候就会出错
参考
【Autolabor初级教程】ROS机器人入门_哔哩哔哩_bilibili
松灵学院 | Scout mini 仿真指南_松灵开发社区-CSDN博客
ROS创建功能包_source/home/############/catkin_ws/devel/setup.bas-CSDN博客