ROS机器人常用命令整合

机器人常用命令整合

  • 网络及环境配置
  • 检查机器人的状态
  • 功能1:手动控制机器人的移动
  • 功能2:IMU,角速度线速度的自动校准
  • 功能3:SLAM地图构建
    • 1.使用gmapping算法构建地图
    • 2.选择一片区域自动构建地图(也是gmapping算法)
    • 3.用hector算法构建地图
    • 4.用karto算法构建地图
  • 功能4:自动导航功能
    • 1.定点导航(单点)
    • 2.多点导航(规划路线)
  • 功能5:调试PID参数
  • 功能6:摄像头寻红线,雷达跟随
    • 1.摄像头寻红线(打开usb摄像头)
    • 2.雷达跟随(不实用)
  • 功能7:使用手机APP控制(安装Map Nav和Make a Map)
  • 功能8:OpenCv图像处理模板
  • 后记:实用功能链接
    • Linux方面的:
    • ROS方面的:
  • 后记2:之前的笔记
      • 第一篇:ROS的多系统的移植(包括Ubuntu、ROS安装)--Kinetic
      • 第二篇:ROS网络通信方面的配置
      • 第三篇:机器人基本参数的配置

首先说明,以下使用的rikirobot这个名字要换成你使用的代码包名,因为我用的是rikirobot的源码,所以调用的是rikirobot的代码包,不过目前市面上大部分的机器人小车都是千篇一律,所以换个名字大概率都适用。里面的(TAB)的意思是名字太长我懒得打了,直接敲TAB键补全吧

网络及环境配置

参考我的第二篇文章:网络环境的配置

检查机器人的状态

1.这里我设置过开机是自启动bringup.launch的,开机自动打开一个终端并运行程序的教程地址如下:
使用其中的方案二,我写的脚本在主目录下的Linux开头的文件夹。
检查一下是否有打开先

rostopic list

如果显示了一定数量的话题,说明已经启动成功,可以使用以下功能了。
如果没有的话,运行如下代码

roslaunch rikirobot bringup.launch

打开失败的话要检查线路或者电源问题

功能1:手动控制机器人的移动

以下代码是在工控机内完成的(需要ssh)

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

之后就可以根据指示手动操控机器人的移动了,需要改按键的话也可以直接修改这个源码
(改完记得重新catkin_make编译一遍)

功能2:IMU,角速度线速度的自动校准

1.调整IMU

#以下代码是在工控机内完成的(需要ssh)
roscd rikirobot/param/imu
sudo vim imu_calib.yaml		#查看数据
rostopic echo /imu/data		#刷新数据
rosrun imu_calib do_calib	#开始自动调整,名字错的话可能我打少了字母,记得使用TAB补全

2.调整线速度角速度

#以下代码是在工控机内完成的(需要ssh)
rosrun rikirobot_nav calibrate_angular.py 	#打开角速度调整模式
rosrun rikirobot_nav calibrate_linear.py	#打开线速度调整模式(二选一,分开来调整)
#以下代码是在上位机内完成的(不需要ssh)
rqt_reconfigure
#以下代码是在工控机内完成的(需要ssh)
roscd  rikirobot/launch
sudo vim bringup.launch		#在bringup文件夹里修改其初始的线速度角速度,修改完记得':wq!'保存退出

功能3:SLAM地图构建

1.使用gmapping算法构建地图

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot lidar_slam.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到slam.rviz
			#2.使用2D Nav Goal功能(设定目标位置,发送地址来加载地图),也可以使用功能1来手动控制建图	
#以下代码是在工控机内完成的(需要ssh)
#保存地图
rosrun map_server map_saver -f house		#house可以是任意名字,不过默认后续默认调用的地图就是house
roscd rikirobot/maps
ls -l										#查询是否保存

2.选择一片区域自动构建地图(也是gmapping算法)

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot auto_slam.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到auto_slam.rviz
			#2.使用Publish Point功能(依次选择几个点连成封闭区域,再按点开始构建)
#以下代码是在工控机内完成的(需要ssh)
#保存地图
rosrun map_server map_saver -f house		#house可以是任意名字,不过默认后续默认调用的地图就是house
roscd rikirobot/maps
ls -l										#查询是否保存

3.用hector算法构建地图

#注意:线速度要0.2以下、角速度0.2以下,不要来回走动,该算法适合在空旷地方下使用
#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot hector_slam.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到slam.rviz
			#2.使用2D Nav Goal功能(设定目标位置,发送地址来加载地图),也可以使用功能1(需要ssh)来手动控制建图	
#以下代码是在工控机内完成的(需要ssh)
#保存地图
rosrun map_server map_saver -f house		#house可以是任意名字,不过默认后续默认调用的地图就是house
roscd rikirobot/maps
ls -l										#查询是否保存

4.用karto算法构建地图

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot karto_slam.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到slam.rviz
			#2.使用2D Nav Goal功能(设定目标位置,发送地址来加载地图),也可以使用功能1(需要ssh)来手动控制建图	
#以下代码是在工控机内完成的(需要ssh)
#保存地图
rosrun map_server map_saver -f house		#house可以是任意名字,不过默认后续默认调用的地图就是house
roscd rikirobot/maps
ls -l										#查询是否保存

功能4:自动导航功能

1.定点导航(单点)

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot navigate.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到navigate.rviz
			#2.使用2D Pose Est功能(初始机器人在地图上的位置,雷达与墙面越贴合越好)
			#3.使用2D Nav Goal功能(设定目标位置,发送地址来直接导航)

2.多点导航(规划路线)

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot navigate_multi.launch
#以下代码是在上位机内完成的(不需要ssh)
rviz		#1.在RVIZ左上的file-Openconfig-找到multi_goals.rviz
			#2.使用Publish Point功能(依次选择几个点,机器人会按照顺序朝着这些点移动)
			#有时候可能打不开show_mark.py文件而报错,需要单独运行或者再chmod 777 -R catkin_ws

功能5:调试PID参数

#以下代码是在工控机内完成的(需要ssh)
rosrun riki_pid pid_configure
#以下代码是在上位机内完成的(不需要ssh)
rosrun rqt_reconfigure rqt_reconfigure       #调整参数
rikirobot_project/riki_pid/cfg/rikiPID.cfg   #修改PID的默认启动值
#从网上搜PID调试方法,慢慢调出合适值

功能6:摄像头寻红线,雷达跟随

1.摄像头寻红线(打开usb摄像头)

#以下代码是在工控机内完成的(需要ssh)
roslaunch camera.launch
#打开之后可以RVIZ读节点或者使用rqt_image_view读/image/raw节点来获取图像(启动rqt工具栏时不用ssh)
roslaunch riki_line_follower riki_line.launch		#摄像头越低越好

2.雷达跟随(不实用)

#以下代码是在工控机内完成的(需要ssh)
roslaunch riki_lidar_follower laser_follower.launch
#原理是雷达检测最近的目标,并固定与其的距离(误差很大)

功能7:使用手机APP控制(安装Map Nav和Make a Map)

#以下代码是在工控机内完成的(需要ssh)
roslaunch rikirobot appcamera.launch
#打开APP之后连接完就直接使用了
#用app导航的话启动跟功能3、4一样的包就行了

功能8:OpenCv图像处理模板

#以下代码是在上位机内完成的[添加链接描述](https://www.bilibili.com/video/av50377985/?p=6)(不需要ssh)
roslaunch opencv_apps edge_(TAB)			#边缘提取
roslaunch opencv_apps hough_lines.launch	#直线识别
roslaunch opencv_apps find_cont(TAB)		#结构特征轮廓识别
roslaunch opencv_apps convex(TAB)			#凸起识别
roslaunch opencv_apps general(TAB)		#椭圆识别
roslaunch opencv_apps people_det(TAB)		#身高特征识别等等。。。。具体可以直接百度出想要的功能
#用的版本是2.7,可以用来参考别人图像识别是怎么做的

后记:实用功能链接

Linux方面的:

1.Linux开机执行指令: 自启动
2.Linux改用户名: 改用户名
3.串口数据的读取: 读串口数据
4.开机不需要密码: 自动登录
5.SSH免密码登录: 免密码视频教程
6. ROBOWARE STUDIO的安装 安装IDE
7. 以ROOT用户自动运行程序 开机执行指令(ROOT版)
8. 用ROOT权限打开文件管理器:sudo nautilus

ROS方面的:

1.rosbag数据记录及转换图片、视频:ROSBAG用法
2.查找ROS的节点连接情况:rqt_graph
3.读取图像信息:rqt_image_view并找到image_raw节点(读其他图像信息就换相应的节点)

后记2:之前的笔记

第一篇:ROS的多系统的移植(包括Ubuntu、ROS安装)–Kinetic

第二篇:ROS网络通信方面的配置

第三篇:机器人基本参数的配置

你可能感兴趣的:(ROS,机器人,Linux,机器人,ROS,Linux,Ubuntu,日常命令)