ROS机器人的日常使用命令整合(默认在异地组网的情况下)

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

网络及环境配置

1.登录蒲公英VPN,输入与工控机相同的帐号密码
2.前往蒲公英的控制台,检查上位机和工控机是否连上VPN以及查看他们的IP是否有变动:点此进入控制台
3.输入hostname,查看上位机的名字
4.检查上位机的bashrc,如果发现ip变化需要更改

ROS_IP是在蒲公英查到的上位机的ip
ROS_HOSTNAME是你的上位机的名字.local
ROS_MASTER_URI是蒲公英查到的工控机的ip

sudo gedit ~/.bashrc		#在这里面改
 # ROS_IP=XXX.XXX.XXX.XXX
 #ROS_HOSTNAME='你电脑的hostname.local'    
 #ROS_MASTER_URI=http://xxx.xxx.xxx.xxx:11311

4.检查工控机的bashrc以及hosts,同理ip变化也需要修改若出现拒绝,可能是服务没开或者名字重复
(1)启动SSH服务:https://blog.csdn.net/zhe_csdn/article/details/90053018
(2)跳过SSH检测:

sudo vim ~/.ssh/config
#按i进入编辑模式
#输入以下内容:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
#之后用vim命令保存即可(先按ESC退出编辑模式,再输入':wq!')

之后拿上位机使用ssh远程连接工控机(自此之后就可以远程操作了)

ssh  [email protected]     				   #xxx为工控机的名字(最左边那个),后填工控机的ip地址
sudo vim /etc/hosts
#找到一排空白行,输入
XXX.XXX.XXX		XXX.local        			 #前为上位机ip地址,后为上位机的名字,之后保存并退出
#修改完进入bashrc文件里改
sudo vim ~/.bashrc
#也是找这几个参数,把蒲公英里拿到的工控机ip更换并输入进去)
# ROS_IP=xxx.xxx.xxx
# ROS_HOSTNAME=xxx.xxx.xxx
# ROS_MASTER_URI=http://xxx.xxx.xxx:11311
# RIKIBASE=xx								xx是机器人的类别(用履带就输入tank,用四驱就输入4wd
# RIKILIDAR=rplidar
#改完之后也是保存并退出
source ~/.bashrc    #最后source一遍

自此,网络方面就配置完成了

检查机器人的状态

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用法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章