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網絡通信方面的配置

第三篇:機器人基本參數的配置

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