ros2 gz-sim 上手記錄

參考資料

版本簡介: ros2 humble 配套的是 ignition gazebo 6 (Fortress)
但是 gz-sim8 (Harmonic) LTS 支持時間更久,而且后續(xù)版本命令前綴由ign又變回gz, 所以最終選擇 gz-sim8

ubuntu source

安裝慢在這里換ros源解決
https://mirrors-i.tuna.tsinghua.edu.cn/help/ubuntu/
https://mirrors.tuna.tsinghua.edu.cn/help/ros2/

install gazebo

https://gazebosim.org/home
https://gazebosim.org/docs/fortress/install_ubuntu/
https://gazebosim.org/docs/harmonic/install_ubuntu/

install ros pkgs

rosdepc
http://fishros.com/install
rosdepc update
sudo apt install ros-humble-ros-ign-bridge ros-humble-ros-ign-gazebo ros-humble-realsense2-description

模型下載

https://app.gazebosim.org/fuel/models

機器人運行例程

https://github.com/ava-orange-education/Ultimate-Robotics-Programming-with-ROS2-and-Python

語義分割/實例分割相機

https://github.com/gazebosim/gz-sensors
分支切換到 ign-sensors6, tutorials/segmentation_camera.md

自動標注點云

https://github.com/mariusud/semantic_labelling_ros

編譯運行

colcon build --packages-select nav2_mobile_robot

ros2 launch nav2_mobile_robot nav2_mobile_robot_gazebo.launch.py


ros2 topic pub /cmd_vel  -1 geometry_msgs/msg/Twist "linear:
  x: 0.2
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.1"


問題處理

  • xacro plugin 只聲明一次
  • xacro 傳感器名字不能重復

模型學習

panda_demo 機械臂
Ignition ROS 2 CI 湖中的古鎮(zhèn)建筑,天空和樹
Warehouse 差速小車,有燈光
Edifice demo 人機械臂桌子電風扇麥輪車相機插件
industrial-warehouse 1 垃圾桶地牛貨架貨物地板可移動

遷移版本從 fortress -> harmonic

# apt
sudo apt remove ignition-fortress && sudo apt autoremove
sudo apt-get install gz-harmonic

# 卸載6的控制器插件
sudo apt remove ros-humble-ign-ros2-control*

# 安裝8的控制器
sudo apt install ros-humble-gz-ros2-control


# launch
    ign_resource_path = SetEnvironmentVariable(
        name="IGN_GAZEBO_RESOURCE_PATH", value=[os.path.join(pkg_nav2_mobile_robot)]
    )
    gz_resource_path = SetEnvironmentVariable(
        name="GZ_SIM_RESOURCE_PATH", value=[os.path.join(pkg_nav2_mobile_robot)]
    )

    ignition_gazebo_node = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            [
                PathJoinSubstitution(
                    [FindPackageShare("ros_gz_sim"), "launch", "gz_sim.launch.py"]
                )
            ]
        ),
        launch_arguments=[("gz_args", [" -r -v 4 maze.sdf"]), ("gz_version", "6")],
    )

# ros_gz
https://discourse.openrobotics.org/t/will-gazebo-harmonic-ever-be-recommended-for-ros2-humble/48820/2
回答的意思是非最佳支持版本可能需要手動編譯ros_gz
https://github.com/gazebosim/ros_gz
但是apt中能搜到二進制匹配版本,直接安裝就好
sudo apt install ros-humble-ros-gzharmonic*

# gz_sensors
xacro: ignition_frame_id -> gz_frame_id
sudo apt install ros-humble-tf2-tools ros-humble-rqt-tf-tree
rqt --clear-config

# realsense2
sudo apt install ros-humble-realsense2-description

安裝gz-sim8 harmonic

# https://gazebosim.org/docs/harmonic/install_ubuntu/
sudo apt-get install gz-harmonic
sudo apt install ros-humble-ros-gzharmonic*
sudo apt install ros-humble-realsense2-description

源碼編譯gz-sim8 harmonic

遇到一個問題,xacro添加的joint_controller 在控制越界后會卡住,查詢github issue得知是仿真引擎問題。想通過修改joint_controller源碼解決,先嘗試源碼編譯

# https://gazebosim.org/docs/harmonic/install_ubuntu_src/

# 卸載舊的
sudo apt remove gz-fortress && sudo apt autoremove
sudo apt remove gz-harmonic && sudo apt autoremove

sudo apt remove gz-* gazebo* ignition-* ros-*-ros-gz* ros-*-ros-gz-sim* libgz-* gz-tools2 && sudo apt autoremove


# 下載vcstool導入所有源碼
sudo apt-get install python3-vcstool python3-colcon-common-extensions
cd gzsim/src
curl -O https://raw.githubusercontent.com/gazebo-tooling/gazebodistro/master/collection-harmonic.yaml
vcs import < collection-harmonic.yaml


# 下載依賴
cd gzsim/src

sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

sudo apt-get update && sudo apt -y install \
  $(sort -u $(find . -iname 'packages-'`lsb_release -cs`'.apt' -o -iname 'packages.apt' | grep -v '/\.git/') | sed '/gz\|sdf/d' | tr '\n' ' ')


# 編譯
cd gzsim
colcon graph

colcon build --cmake-args ' -DBUILD_TESTING=OFF' --merge-install
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容