install ros noetic
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install -y ros-noetic-ros-base
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
create workspace
mkdir -p ~/workspace/src
cd ~/workspace
catkin_make
source devel/setup.bash
创建python包
cd ~/workspace/src
catkin_create_pkg deep_img rospy std_msgs
cd deep_img
nano src/main.py
#!/usr/bin/env python3
import rospy
def talker():
rospy.init_node('my_python_node', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
rospy.loginfo("Hello, ROS!")
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
1. launch py包
创建启动文件
chmod +x src/main.py
mkdir launch
nano launch/default.launch
<launch>
<node name="deep_img_python_node" pkg="deep_img" type="main.py" output="screen"/>
</launch>
启动
cd ~/workspace
catkin_make
source devel/setup.bash
roslaunch deep_img default.launch
2. rosrun 启动
chmod +x src/main.py
cd ~/workspace
catkin_make
source devel/setup.bash
rosrun deep_img main.py
创建cpp包
cd ~/workspace/src
catkin_create_pkg laser_radar std_msgs roscpp
cd laser_radar
nano src/main.cpp
#include "ros/ros.h"
#include "std_msgs/String.h"
int main(int argc, char **argv)
{
// 初始化节点
ros::init(argc, argv, "helloworld_node");
// 创建节点句柄
ros::NodeHandle nh;
// 创建一个发布者,发布到 "chatter" 话题
ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("chatter", 1000);
// 设置循环频率
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok())
{
// 创建一个字符串消息
std_msgs::String msg;
// 设置消息内容
std::stringstream ss;
ss << "Hello World " << count;
msg.data = ss.str();
// 发布消息
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
// 等待下一个循环
loop_rate.sleep();
++count;
}
return 0;
}
nano CMakeLists.txt
# 添加可执行文件
add_executable(helloworld_node src/main.cpp)
# 添加依赖
target_link_libraries(helloworld_node ${catkin_LIBRARIES})
launch 运行
cd ~/workspace
catkin_make
source
devel/setup.bash
rosrun laser_radar helloworld_node