ROS2 HelloWorld

安装ros2

很多镜像源无法直接安装ROS2,需要添加ROS2的地址到源列表,然后更新。

sudo apt install curl -y
sudo apt install gnupg2  -y
curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update

这里安装foxy桌面版:

sudo apt install ros-foxy-desktop 

顺便安装个编译工具colcon

sudo apt install python3-colcon-common-extensions

要运行ros前需要先设置环境

source /opt/ros/foxy/setup.bash

环境设置成功可以用printenv | grep -i ROS查看相关信息

printenv | grep -i ROS

在这里插入图片描述
如果需要启动时自动设置环境,可以这样

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc

运行helloworld测试例程

ros2 run demo_nodes_cpp talker &
ros2 run demo_nodes_cpp listener &

在这里插入图片描述
运行小乌龟测试例程

ros2 run turtlesim turtlesim_node &
ros2 run turtlesim turtle_teleop_key &

按键盘小乌龟会动,比如方向键
在这里插入图片描述

HelloWorld实现

创建工作空间

首先创建个ROS的工作空间

mkdir ~/ROSWorkspace

创建功能包和节点

创建功能包和节点一般可以用下面这个命令:

ros2 pkg create <package_name> --build-type <build-type> --dependencies <dependencies> --node-name
其中:
package_name:是我们要创建的功能包名称
build-type:用于指定构建系统类型,例如ament_cmake 和ament_python
dependencies:表示功能包的依赖项,例如:一般C++会需要rclcpp,Python会需要rclpy,当然这个不是强制的。
node-name:节点名称,也是可执行程序的名称,会自动生成对应的源文件并生成配置文件

先创建一个ament_cmake的hello world,这里虽然指定了dependencies rclcpp,不过目前的例程暂时没有用到,仅仅是个示例,不用纠结后面没有用到。

ros2 pkg create pkg_helloworld_cpp --build-type ament_cmake --dependencies rclcpp --node-name helloworld_cpp

在这里插入图片描述
指定–node-name会帮我们自动创建.cpp源文件
在这里插入图片描述
当然不指定–node-name,我们也可以手动创建一个自己的.cpp,然后在CMakeLists.txt中根据实际情况添加类似如下的内容:
在这里插入图片描述
源代码和工程配置完成后就可以编译我们的工程了,我们这里使用colcon来编译,当然也还有其他方式,这里暂时不做介绍。
前面已经安装了colcon,没安装的执行下面的命令安装一下

sudo apt install python3-colcon-common-extensions

编译工作包时我们可以直接编译工作空间里的所有工作包

colcon build

编译工作空间中的所有功能包可能会比较耗时,也可以单独编译指定的工作包,可以节省时间

colcon build --packages-select pkg_helloworld_cpp

在这里插入图片描述
可能我这里实在wsl环境下编译的,就几行代码耗时20多秒
编译完后,工作空间例会多出几个文件夹,build、install、log
在这里插入图片描述

install中有配置当前工作空间环境的脚本,运行helloworld前先配置下环境

. install/setup.bash

然后就可以使用我们的helloworld_cpp了,命令格式如下

ros2 run package_name executable_name ...

这里跑下helloworld_cpp

ros2 run pkg_helloworld_cpp helloworld_cpp

在这里插入图片描述
到这里我们就是先一个最简单hello world例程了。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值