一、一些基础网站
ROS官方网站,Ubuntu镜像下载: https://www.ros.org
ROS官方网站,带有一些参考知识: http://wiki.ros.org
Linux系统中一些插件下载方法教程: https://wiki.ubuntu.org.cn
古月居,ROS中的操作例程、案列: http://www.gyh.ai
CSDN中的一些ROS中的操作教程: https://blog.csdn.net/ZhangRelay
易科机器人实验室(案例教程): http://blog.exbot.net
https://robots.ros.org/
开源机器人学学习指南: https://github.com/qqfly/how-to-learn-robotics
二、建图
三、路径规划
1、编写里程计:
navigation/Tutorials/RobotSetup/Odom - ROS Wikihttp://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom
★编写Odometer里程计案例:
https://zhuanlan.zhihu.com/p/384354342
★一些ROS2的案例教程(点云、相机、小车、TF等):
https://www.zhihu.com/org/aigraphx/posts
2、机器人模型-及-机器人发布TF-tree
1. base_footprint 优化urdf(为什么URDF模型文件中会有-- base_footprint 组件)
机器人模型是半沉到地下的,因为默认情况下: 底盘的中心点位于地图原点上,所以会导致这种情况产
生,可以使用的优化策略,将初始 link 设置为一个尺寸极小的 link(比如半径为 0.001m 的球体,或边长
为 0.001m 的立方体),然后再在初始 link 上添加底盘等刚体,这样实现,虽然仍然存在初始link半沉现象
,但是基本可以忽略了。这个初始 link 一般称之为 base_footprint
<!--使用 base_footprint 优化-->
<robot name="mycar">
<!-- 设置一个原点(机器人中心点的投影) -->
<link name="base_footprint">
<visual>
<geometry>
<sphere radius="0.001" />
</geometry>
</visual>
</link>
<!-- 添加底盘 -->
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
<origin xyz="0 0 0" rpy="0 0 0" />
<material name="blue">
<color rgba="0 0 1.0 0.5" />
</material>
</visual>
</link>
<!-- 底盘与原点连接的关节 -->
<joint name="base_link2base_footprint" type="fixed">
<parent link="base_footprint" />
<child link="base_link" />
<origin xyz="0 0 0.05" />
</joint>
<!-- 添加摄像头 -->
<link name="camera">
<visual>
<geometry>
<box size="0.02 0.05 0.05" />
</geometry>
<origin xyz="0 0 0" rpy="0 0 0" />
<material name="red">
<color rgba="1 0 0 0.5" />
</material>
</visual>
</link>
<!-- 关节 -->
<joint name="camera2baselink" type="continuous">
<parent link="base_link"/>
<child link="camera" />
<origin xyz="0.2 0 0.075" rpy="0 0 0" />
<axis xyz="0 0 1" />
</joint>
</robot>
https://zhuanlan.zhihu.com/p/361423026
1、首先,机器人的状态发布节点是必须存在的:
<!-- 添加关节状态发布节点 -->
<node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
<!-- 添加机器人状态发布节点 -->
<node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
其中,关节运动控制节点会生成关节控制的UI,用于测试关节运动(机械臂控制运动会用到)是否正常。
<!-- 可选:用于控制关节运动的节点 -->
<node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" name="joint_state_publisher_gui" />
2、所构建模型的每一个 _link关节,都要有一个<node>节点对其创建发布 tf 关系:
<node pkg="tf" type="static_transform_publisher" name="base_wheel1_broadcaster" args="0.11203 -0.25361 -0.13 0 0 0 /base_link /wheel1_link 100" />
3、gazebo与ros连接教程:
★☆让gazebo中的模型动起来(可接受cmd_vel指令控制):
https://www.cnblogs.com/IT-cute/p/12990307.html
四、人机交互界面
五、工作空间整合
六、总结