ROS相關學習

2021-10-03 17:34:24 字數 2081 閱讀 2732

ros是個人學習機械人相關知識很好的平台,現成的通訊框架和足夠豐富的開源資源可用節省學習和實踐中的時間,提高學習效率。

ros並不是機械人唯一的架構方式,在實際工程問題中ros並不能完全滿足需求,但對於注重機械人知識體系的某部分的個人來說,比如專注於slam,路徑規劃等某方面,使用ros相當於在乙個相對穩定的架構中開發自己的模組。

4. ros bag相關

許多教程講在.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=$:/home/robin/catkin_ws/src
在使用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

1、在工作空間catkin_make編譯後/devel/lib中沒有生成bin檔案。

---- 檢查cmakelists,看是否有catkin_package()

2、無法包含devel/include下的檔案。

---- 在cmakelists的catkin_package( )中新增include_dirs即可包含

那麼當我們又安裝了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

在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"

ROS相關知識

初始化 node,名字為 talker,有了名字,node 才開始與 master 以及其他 node 通訊 ros graph 中可能存在多個重名的 node,例如多個 turtle node,當令 anonymous true 時,重名 node 會自動在名字後邊加上隨機數以示區別。建立乙個 p...

ROS學習二 安裝ROS

執行備份命令 sudo cp etc apt sources.list etc apt sources.list.old 可以用vim,gedit,atom等工具開啟 sudo vim etc apt sources.list或 sudo gedit etc apt sources.list 或 你...

ROS學習 ROS通訊架構

作用 每個node啟動時都要想master註冊,管理node之間的通訊 可實現點對點通訊 roscore 啟動ros master pkg裡面的可執行檔案執行的例項。啟動乙個node rosrun 包名 節點名 rosnode rosnode list檢視當前執行的node資訊 rosnode in...