ROS
命令行工具:包括 roscore
(ROS 主进程)、rosnode
(节点管理)和 rosrun
(运行节点),roslaunch
(用.launch 文件运行 n 个节点)。
rosrun 之所以能在不知道包路径的情况下直接运行包内的节点,是因为 ROS 环境变量 $ROS_PACKAGE_PATH
指明了 ROS 查找包的路径,ROS 会递归地查找 $ROS_PACKAGE_PATH
中的每一个子目录,直到找到包含 package.xml
文件的目录,这个目录就被认定为一个 ROS 包。
比如这个 turtlebot3_example
就会被认作一个 ros 包
ubuntu@ROS-EASY-OSV:~/catkin_ws/src$ echo $ROS_PACKAGE_PATH
/home/ubuntu/ros1_tb3_ws/src:/home/ubuntu/catkin_ws/src:/opt/ros/noetic/share
示例:
roslaunch turtlebot3_example turtlebot3_client.launch
# 寻找到 /home/ubuntu/ros1_tb3_ws/src/turtlebot3/turtlebot3_example/launch/turtlebot3_client.launch文件,执行src/turtlebot3/turtlebot3_example/nodes/turtlebot3_client.py
rosrun turtlebot3_example turtlebot3_server
# 执行 src/turtlebot3/turtlebot3_example/nodes/turtlebot3_server.py
rosrun
读取到 /home/ubuntu/ros1_tb3_ws/src/turtlebot3_example/nodes
里面的 turtlebot3_example.py
并执行
PYTHONPATH:
/home/ubuntu/ros1_tb3_ws/src/turtlebot3/turtlebot3_example/src
/home/ubuntu/ros1_tb3_ws/devel/lib/turtlebot3_example
/home/ubuntu/ros1_tb3_ws/devel/lib/python3/dist-packages
/home/ubuntu/catkin_ws/devel/lib/python3/dist-packages
/opt/ros/noetic/lib/python3/dist-packages
/usr/lib/python38.zip
/usr/lib/python3.8
/usr/lib/python3.8/lib-dynload
/home/ubuntu/.local/lib/python3.8/site-packages
/usr/local/lib/python3.8/dist-packages
/usr/lib/python3/dist-packages
库文件,如:actionlib
,在 /opt/ros/noetic/lib/python3/dist-packages
turtlebot3_example.msg
位置:/home/ubuntu/ros1_tb3_ws/devel/lib/python3/dist-packages/turtlebot3_example/msg
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于