编写ROS程序的步骤如下:
创建工作区
创建一个工作区目录,例如 `~/catkin_ws`。
在工作区目录下创建 `src` 子目录,用于存放功能包的源码。
初始化工作区:
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
```
将工作区在bash中注册:
```bash
source devel/setup.bash
```
验证是否已经在bash中注册:
```bash
echo $ROS_PACKAGE_PATH
```
如果能看到自己工作区的文件路径,则说明注册成功。
创建功能包
切换到工作区的 `src` 目录:
```bash
cd ~/catkin_ws/src
```
使用 `catkin_create_pkg` 命令创建功能包,例如创建一个名为 `hello_ros` 的包:
```bash
catkin_create_pkg hello_ros
```
进入功能包目录:
```bash
cd hello_ros
```
编写ROS程序
在功能包目录下创建 `src` 子目录:
```bash
mkdir src
cd src
```
创建一个名为 `hello.cpp` 的文件,并编写ROS程序,例如一个简单的发布者/订阅者示例:
```cpp
!/usr/bin/env python3
import rospy
from std_msgs.msg import String
发布者节点
def publisher_node():
pub = rospy.Publisher('hello_topic', String, queue_size=10)
rospy.init_node('hello_publisher', anonymous=True)
rate = rospy.Rate(10) 10 Hz
while not rospy.is_shutdown():
pub.publish("Hello ROS!")
rate.sleep()
if __name__ == '__main__':
try:
publisher_node()
except rospy.ROSInterruptException:
pass
```
创建 `CMakeLists.txt` 文件,配置编译和安装信息:
```cmake
cmake_minimum_required(VERSION 3.0.2)
project(hello_ros)
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
)
catkin_package(
LIBRARIES ${catkin_LIBRARIES}
CATKIN_DEPENDS roscpp std_msgs
)
include_directories(${catkin_INCLUDE_DIRS})
add_executable(hello_node src/hello.cpp)
target_link_libraries(hello_node ${catkin_LIBRARIES})
```
编译功能包
在工作区目录下运行 `catkin_make` 命令进行编译:
```bash
cd ~/catkin_ws
catkin_make
```
编译完成后,会在 `build` 和 `devel` 子目录下生成可执行文件和库文件。
运行程序
启动 `roscore`:
```bash
roscore
```
在新的终端中运行程序:
```bash
rosrun hello_ros hello_node
```
如果一切正常,你应该会看到 "Hello ROS!" 消息发布到 `hello_topic` 话题上。
以上步骤涵盖了从创建工作区、创建功能包、编写ROS程序、编译到运行程序的完整流程。根据具体需求,你可以进一步扩展和修改这些步骤。