前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS1&2极简版安装配置案例(Noetic&Foxy@Ubuntu20.04)

ROS1&2极简版安装配置案例(Noetic&Foxy@Ubuntu20.04)

作者头像
zhangrelay
发布2020-08-13 11:23:53
8990
发布2020-08-13 11:23:53
举报


Noetic:

1:

代码语言:javascript
复制
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

2:

代码语言:javascript
复制
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3:

代码语言:javascript
复制
sudo apt update

4:安装

代码语言:javascript
复制
sudo apt install ros-noetic-desktop-full

5:配置

代码语言:javascript
复制
source /opt/ros/noetic/setup.bash

Bash:

代码语言:javascript
复制
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

Zsh:

代码语言:javascript
复制
echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

ros-noetic-desktop-full (1.5.0-1focal.20200724.201236)

sudo apt install ros-noetic- Display all 1048 possibilities? (y or n)

Foxy:

1:

代码语言:javascript
复制
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

2:

代码语言:javascript
复制
sudo apt update && sudo apt install curl gnupg2 lsb-release

3:

sudo gedit /etc/apt/sources.list.d/ros2-latest.list

deb [arch=amd64,arm64] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ focal main

4:

代码语言:javascript
复制
sudo apt update

5: 安装

代码语言:javascript
复制
sudo apt install ros-foxy-desktop

6: 配置

代码语言:javascript
复制
source /opt/ros/foxy/setup.bash

ros-foxy-desktop (0.9.2-1focal.20200807.222642)

sudo apt install ros-foxy- Display all 815 possibilities? (y or n)

7:

代码语言:javascript
复制
sudo apt install python3-argcomplete

配置:Noetic和Foxy切换(Bash)

代码语言:javascript
复制
# ROS 1.0 noetic or ROS 2.0 foxy
echo Hello, ROS 1.0 or ROS 2.0? 1=noetic 2=foxy 
read ROS
if (($ROS==1));then
source /opt/ros/noetic/setup.bash
#export ROS_PACKAGE_PATH=/home/ros/RobTool/ROS1/Wiki/src:/home/relaybot/RobTool/Cozmo/ros/src:$ROS_PACKAGE_PATH
#source /home/ros/RobTool/ROS1/Wiki/devel/setup.bash
#export ROS_MASTER_URI=http://192.168.1.100:11311
#export ROS_IP=192.168.1.100
echo "noetic"
elif (($ROS==2));then
source /opt/ros/foxy/setup.bash
echo "foxy"
else
echo "Non-ROS"
fi

案例:

使用新立得软件工具安装deb包。

点击应用:


实物如上:

roslaunch mir_gazebo mir_maze_world.launch

仿真如下:

环境图如下:

可以测试各类算法。

foxy-turtlebot3:

ign-gazebo-demos(ros1+ros2):

$ roslaunch ros_ign_gazebo_demos  air_pressure.launch        gpu_lidar.launch battery.launch             image_bridge.launch camera.launch              imu.launch create.launch              magnetometer.launch depth_camera.launch        rgbd_camera_bridge.launch diff_drive.launch          rgbd_camera.launch gpu_lidar_bridge.launch  $ ros2 launch ros_ign_gazebo_demos  -a                              imu.launch.py air_pressure.launch.py          magnetometer.launch.py battery.launch.py               -p camera.launch.py                --print -d                              --print-description --debug                         rgbd_camera_bridge.launch.py depth_camera.launch.py          rgbd_camera.launch.py diff_drive.launch.py            -s gpu_lidar_bridge.launch.py      --show-all-subprocesses-output gpu_lidar.launch.py             --show-args image_bridge.launch.py          --show-arguments

Noetic:

  1. roslaunch ros_ign_gazebo_demos battery.launch 
  2. rostopic pub /model/vehicle_blue/cmd_vel geometry_msgs/Twist "{linear: {x: 5.0}, angular: {z: 0.5}}"

Foxy:

  1. ros2 launch ros_ign_gazebo_demos battery.launch.py
  2. ros2 topic pub /model/vehicle_blue/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 5.0}, angular: {z: 0.5}}"

 电池耗尽机器人将停止运动!!!


ROS+ign_gazebo

演示如何将ign_gazebo与ROS一起使用的演示。

启动ign_gazebo

启动文件,例如:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo ign_gazebo.launch.py ign_args:="shapes.sdf"

ros1使用roslaunch

空气压力

sensor_msgs/msg/FluidPressure

发布流体压力读数。

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos air_pressure.launch.py

相机

发布RGB相机图像和信息。

图像可以通过ros_ign_bridge或ROS ros_ign_image发布

使用图像桥接(单向,使用image_transport):

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos image_bridge.launch.py

使用常规桥接:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos camera.launch.py

差速机器人

向差速驱动车辆发送命令并听其里程表。

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos diff_drive.launch.py

然后取消暂停并发送命令

代码语言:javascript
复制
ros2 topic pub /model/vehicle_blue/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 5.0}, angular: {z: 0.5}}"

深度相机

深度相机数据可通过以下方式获得:

  • sensor_msgs/msg/Image,通过ros_ign_bridgeros_ign_image
  • sensor_msgs/msg/PointCloud2,通过 ros_ign_point_cloud

使用图像桥接(单向,使用image_transport):

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos image_bridge.launch.py

使用ign_gazebo件:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos depth_camera.launch.py

GPU激光雷达

GPU激光雷达数据可通过以下方式获得:

  • sensor_msgs/msg/LaserScan,通过 ros_ign_bridge
  • sensor_msgs/msg/PointCloud2,通过ros_ign_bridgeros_ign_point_cloud

使用桥接:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos gpu_lidar_bridge.launch.py

使用ign_gazebo插件:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos gpu_lidar.launch.py

内部惯性导航单元

发布IMU读数。

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos imu.launch.py

磁力计

发布磁场读数。

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos magnetometer.launch.py

RGBD相机

RGBD摄像机数据可通过以下方式获得:

  • sensor_msgs/msg/Image,通过ros_ign_bridgeros_ign_image
  • sensor_msgs/msg/PointCloud2,通过ros_ign_bridgeros_ign_point_cloud

使用图像桥接(单向,使用image_transport):

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos image_bridge.launch.py

使用常规桥接:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos rgbd_camera_bridge.launch.py

使用ign_gazebo插件:

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos rgbd_camera.launch.py

电池

获取电池的当前状态。

代码语言:javascript
复制
ros2 launch ros_ign_gazebo_demos battery.launch.py

然后发送命令,使车辆行驶并消耗电池电量

代码语言:javascript
复制
ros2 topic pub /model/vehicle_blue/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 5.0}, angular: {z: 0.5}}"

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Noetic:
  • Foxy:
  • ROS+ign_gazebo
    • 启动ign_gazebo
      • 空气压力
        • 相机
          • 差速机器人
            • 深度相机
              • GPU激光雷达
                • 内部惯性导航单元
                  • 磁力计
                    • RGBD相机
                      • 电池
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档