一、虚拟机系统安装ubuntu 18.04 系统
二、初始化系统
#更新
sudo apt-get update
#更换源
sudo apt-get install -y wget
sudo apt-get install apt-transport-https -y
#18.04
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
#华为源 18.04
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo apt-get update
#安装常用工具组件
sudo apt-get install -y \
vim \
lrzsz \
curl
三、安装ROS2 eloquent 版本
3.1 官方部署说明
3.2添加ros2 软件源
sudo apt update && sudo apt install curl gnupg2 lsb-release
#这句不好用,网上找了另外一条
#curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
curl http://repo.ros2.org/repos.key | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://packages.ros.org/ros2/ubuntu bionic main" > /etc/apt/sources.list.d/ros2-latest.list'
3.3安装ros-eloquent和相关依赖
sudo apt update
sudo apt install ros-eloquent-desktop
3.3安装python3库
sudo apt install -y libpython3-dev python3-pip
pip3 install -U argcomplete
sudo apt update
sudo apt install ros-eloquent-rmw-connext-cpp
3.4环境变量设置
1、ROS2单独存在
echo "source /opt/ros/eloquent/setup.bash" >> ~/.bashrc
source ~/.bashrc
2、ROS1和ROS2共存(我没有实践这条)
echo "ros melodic(1) or ros2 dashing(2)?"
read edition
if [ "$edition" -eq "1" ];then
source /opt/ros/melodic/setup.bash
#在这里继续添加source ROS1的工作空间
else
source /opt/ros/eloquent/setup.bash
#source ~/ros2_ws/install/local_setup.bash
fi
推荐内容
四、ROS2依赖配置
4.1解决功能包依赖
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update
sudo rosdep fix-permissions
4.2安装colcon编译工具
sudo apt-get install python3-colcon-ros
4.3 验证安装结果
1、查看环境变量printenv | grep -i ROS
printenv | grep -i ROS
LD_LIBRARY_PATH=/opt/ros/eloquent/opt/yaml_cpp_vendor/lib:/opt/ros/eloquent/opt/rviz_ogre_vendor/lib:/opt/ros/eloquent/lib/x86_64-linux-gnu:/opt/ros/eloquent/lib
AMENT_PREFIX_PATH=/opt/ros/eloquent
ROS_VERSION=2
ROS_LOCALHOST_ONLY=0
ROS_PYTHON_VERSION=3
PYTHONPATH=/opt/ros/eloquent/lib/python3.6/site-packages
PATH=/opt/ros/eloquent/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ROS_DISTRO=eloquent
2、运行经典小乌龟
sudo apt update
sudo apt install ros-eloquent-turtlesim
Check that the package installed:
ros2 pkg executables turtlesim
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
ros2 node list
ros2 topic list
ros2 service list
ros2 action list
ros2 node list
/teleop_turtle
/turtlesim
ros2 topic list
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
ros2 service list
/clear
/kill
/reset
/spawn
/teleop_turtle/describe_parameters
/teleop_turtle/get_parameter_types
/teleop_turtle/get_parameters
/teleop_turtle/list_parameters
/teleop_turtle/set_parameters
/teleop_turtle/set_parameters_atomically
/turtle1/set_pen
/turtle1/teleport_absolute
/turtle1/teleport_relative
/turtlesim/describe_parameters
/turtlesim/get_parameter_types
/turtlesim/get_parameters
/turtlesim/list_parameters
/turtlesim/set_parameters
/turtlesim/set_parameters_atomically
ros2 action list
/turtle1/rotate_absolute
3、实验通信
ros2 run demo_nodes_cpp talker
ros2 run demo_nodes_py listener
五、使用ros2
5.1创建ros2工作空间
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
5.2创建功能包
ros2 pkg create --build-type ament_cmake testcpp # c++功能包
ros2 pkg create --build-type ament_python testpython # python功能包
robot@ubuntu:~/ros2_ws/src$ ros2 pkg create --build-type ament_python testpython
going to create a new package
package name: testpython
destination directory: /home/robot/ros2_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['robot <robot@todo.todo>']
licenses: ['TODO: License declaration']
build type: ament_python
dependencies: []
creating folder ./testpython
creating ./testpython/package.xml
creating source folder
creating folder ./testpython/testpython
creating ./testpython/setup.py
creating ./testpython/setup.cfg
creating folder ./testpython/resource
creating ./testpython/resource/testpython
creating ./testpython/testpython/__init__.py
creating folder ./testpython/test
creating ./testpython/test/test_copyright.py
creating ./testpython/test/test_flake8.py
creating ./testpython/test/test_pep257.py
robot@ubuntu:~/ros2_ws/src$ ros2 pkg create --build-type ament_cmake testcpp
going to create a new package
package name: testcpp
destination directory: /home/robot/ros2_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['robot <robot@todo.todo>']
licenses: ['TODO: License declaration']
build type: ament_cmake
dependencies: []
creating folder ./testcpp
creating ./testcpp/package.xml
creating source and include folder
creating folder ./testcpp/src
creating folder ./testcpp/include/testcpp
creating ./testcpp/CMakeLists.txt
5.3编译
cd ~/ros2_ws/
colcon build
评论(0)
您还未登录,请登录后发表或查看评论