ROS相关学习

ROS相关学习

ROS是个人学习机器人相关知识很好的平台,现成的通信框架和足够丰富的开源资源可用节省学习和实践中的时间,提高学习效率。
ROS并不是机器人唯一的架构方式,在实际工程问题中ROS并不能完全满足需求,但对于注重机器人知识体系的某部分的个人来说,比如专注于slam,路径规划等某方面,使用ROS相当于在一个相对稳定的架构中开发自己的模块。

1.配置ros package路径:

许多教程讲在.bashrc中添加如下内容:

source /opt/ros/melodic/setup.bash //ros melodic自己的setup.bash路径
source /home/stephane/catkin_rospi/devel/setup.bash //作者的一个工作空间的setup.bash路径

但source多的情况下有冲突存在,无法成功添加source到ROS_PACKAGE_PATH, 有人研究过setup.bash的内容也未能找到原因。
使用标准语句放在 .bashrc 中可解决。

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/robin/catkin_ws/src

2.URDF建模

在使用urdf建模后用check_urdf来检查urdf文件是否正确
urdf文件的编写尽量写一段以后check一下,否则有bug后不好定位
例如:来检查mbot_base.urdf

 check_urdf mbot_base.urdf

正确的话显示相关信息:

robot name is: mbot
---------- Successfully Parsed XML ---------------
root Link: base_link has 2 child(ren)
    child(1):  left_wheel_link
    child(2):  right_wheel_link

3. 问题解决

1、在工作空间catkin_make编译后/devel/lib中没有生成bin文件。
---- 检查CMakeLists,看是否有catkin_package()

2、无法包含devel/include下的文件。
---- 在CMakeLists的 catkin_package( ) 中添加 INCLUDE_DIRS 即可包含

ROS系统 ROS1与ROS2共存使用切换方法

那么当我们又安装了ROS2.0后,就产生了如何切换ROS版本的问题,因为同一个终端里无法同时使用ROS1和ROS2。同样我们可以通过在bashrc文件中加入选择功能来解决这个问题:

第一步 打开bashrc文件:

sudo gedit ~/.bashrc

第二步 在bashrc文件末尾加入以下代码:

echo "ros melodic(1) or ros2 dashing(2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/melodic/setup.bash
else
  source /opt/ros/dashing/setup.bash
fi

知乎原文地址

4. Ros bag相关

1.ros bag filter

在ROS数据集中去除某些Topic

rosbag filter input.bag output.bag "topic !='topic1' and topic !='topic2' ... "

在ROS数据集中记录某些Topic

rosbag filter input.bag output.bag "topic =='topic1' or topic =='topic2' ... "

在ROS数据集中记录指定时间戳的子集,截取数据集指定时间子集

rosbag filter my.bag out.bag "t.to_sec() >= t1 and t.to_sec() <= t2"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值