随笔-382  评论-37  文章-0  trackbacks-0
一、安装ROS2软件及工具
1、更新软件源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
将文件中的内容替换为:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main multiverse universe restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main multiverse universe restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main multiverse universe restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main multiverse universe restricted
保存退出
sudo apt update

2、设置软件源
sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
然后将存储库添加到源列表:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
打开一个IP地址查询网站
https://www.ipaddress.com/
输入域名:raw.githubusercontent.com 查询 IP 地址(可能能查到多个,任选一个就行)
例如185.199.108.133
修改文件:
sudo vim /etc/hosts
文件末尾添加一行代码:
185.199.108.133 raw.githubusercontent.com
保存退出

3、安装 ROS2
sudo apt update
sudo apt upgrade
apt install ros-humble-desktop
等待等待,,,
安装完成后,配置环境
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

4、测试
运行一个类似ROS1里的demo,开两个控制台,分别运行:
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
再次见到久违的小乌龟了!
O了!

5、安装 colcon 构建工具
sudo apt install python3-colcon-common-extensions


二、创建项目并编译运行
1、创建ROS2工作目录
例如命名为workspace:
cd root
mkdir workspace
cd workspace

创建项目:
ros2 pkg create --build-type ament_cmake test1
或者
ros2 pkg create --build-type ament_cmake test1 --dependencies rclcpp std_msgs

其中test1为包名。
--dependencies 指定依赖的功能包,如 rclcpp、std_msgs
2、编写代码
在 test1/src/ 目录下新建文件 talker.cpp:
#include <rclcpp/rclcpp.hpp>
#include <std_msgs/msg/string.hpp>
 
int main(int argc, char * argv[])
{
  rclcpp::init(argc, argv);
  auto node = rclcpp::Node::make_shared("talker");
  auto publisher = node->create_publisher<std_msgs::msg::String>("chatter", 10);
 
  rclcpp::WallRate loop_rate(1);
  while (rclcpp::ok()) {
    auto msg = std_msgs::msg::String();
    msg.data = "Hello, ROS 2!";
    RCLCPP_INFO(node->get_logger(), "Publishing: '%s'", msg.data.c_str());
    publisher->publish(msg);
    rclcpp::spin_some(node);
    loop_rate.sleep();
  }
  rclcpp::shutdown();
  return 0;
}

3、修改cmake文件
在 CMakeLists.txt 增加如下内容:
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
 
add_executable(talker src/talker.cpp)
ament_target_dependencies(talker rclcpp std_msgs)
 
install(TARGETS
  talker
  DESTINATION lib/${PROJECT_NAME}
)

4、编译
回到ROS2工作空间根目录
colcon build --packages-select cpp_example
source install/setup.bash

5、运行
ros2 run cpp_example talker


O了!!!
posted on 2025-05-31 02:51 小王 阅读(121) 评论(0)  编辑 收藏 引用 所属分类: ROS2

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理