建立一个ROS工程

本文详细介绍了如何在ROS(Robot Operating System)环境中创建工作空间、编译源代码、加载环境并创建功能包的过程,包括mkdir-p、catkin_make、环境变量设置和catkin_create_pkg命令的使用。

1.建立工作空间

mkdir -p catkin_ws/src

-p表示递归式创建多级目录

2.编译工作空间

cd ~/catkin_ws
catkin_make

产生devel与build文件。

$ /catkin_ws$ tree -L 1
.
├── build
├── devel
└── src

3 directories, 0 files

备注:catkin_make的更重要的功能是进行编译,但是一定要回到工作空间才能编译。且必须刷新后才能让ros可执行。

src:源代码存放文件,以及功能包。其中packge是编译的最基本单元。
build:中间及缓存文件
devel:目标文件,如可执行文件,头文件,链接库等。

3.加载与catkin构建系统相关的环境文件,把工作区在bash中注册

source / opt / ros / kinetic / setup . bash已经被写入终端启动的初始化文件中,不必进行初始化。

source devel/setup.sh

可以将source命令放入bashrc中

echo "source ~/ws_ros/devel/setup.bash" >> ~/.bashrc

要验证是否已经在bash中注册:

$ echo $ROS_PACKAGE_PATH  
/home/twilight/project/catkin_ws/src:/opt/ros/melodic/share

ROS:Create a ROS Workspace
如果成功看到回显的路径,则说明工程建立成功。

5.创建一个功能包

cd catkin_ws/src
catkin_create_pkg pkg_name std_msgs rospy roscpp
cd catkin_ws
catkin_make

ROS: Creating a catkin Package

要在Ubuntu上使用ROS 2创建C++项目,可以按照以下步骤进行操作。这里假设你已经安装了ROS 2(例如Foxy Fitzwilliam或更高版本)以及必要的开发工具。 ### 创建一个ROS 2工作空间和包 1. **创建工作空间目录** 首先,创建一个新的ROS 2工作空间目录,并进入该目录: ```bash mkdir -p ~/ros2_ws/src cd ~/ros2_ws/src ``` 2. **创建ROS 2包** 使用`ros2 pkg create`命令来创建一个新的C++包。假设你的包名为`my_cpp_project`,并且你想让它依赖于`rclcpp`库(ROS 2的C++客户端库): ```bash ros2 pkg create --build-type ament_cmake my_cpp_project --dependencies rclcpp ``` 3. **编写C++节点代码** 在`my_cpp_project`包中创建一个`src`目录,并在其中添加你的C++源文件。例如,创建一个简单的ROS 2节点: ```cpp // 文件路径: ~/ros2_ws/src/my_cpp_project/src/my_node.cpp #include "rclcpp/rclcpp.hpp" int main(int argc, char *argv[]) { rclcpp::init(argc, argv); auto node = rclcpp::Node::make_shared("my_node"); RCLCPP_INFO(node->get_logger(), "Hello from my_node!"); rclcpp::spin(node); rclcpp::shutdown(); return 0; } ``` 4. **配置CMakeLists.txt** 编辑`my_cpp_project/CMakeLists.txt`文件以包含编译信息: ```cmake cmake_minimum_required(VERSION 3.5) project(my_cpp_project) find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) add_executable(my_node src/my_node.cpp) target_link_libraries(my_node rclcpp::rclcpp) target_include_directories(my_node PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) install(TARGETS my_node DESTINATION lib/${PROJECT_NAME}) ament_package() ``` 5. **构建工作空间** 返回到工作空间根目录并使用`colcon`构建你的包: ```bash cd ~/ros2_ws colcon build --packages-select my_cpp_project source install/setup.bash ``` 6. **运行节点** 构建完成后,你可以启动ROS 2核心服务并运行你的节点: ```bash ros2 run my_cpp_project my_node ``` 通过上述步骤,你应该能够在Ubuntu上成功创建并运行一个基于ROS 2的C++项目[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值