STM32
直播中

王秀兰

8年用户 1468经验值
私信 关注
[问答]

serial如何安装?

serial如何安装?

回帖(1)

毛萃

2021-12-8 10:28:01
serial安装
sudo apt-get install ros--serial, 由于是Ubuntu 18, 那么就是:
sudo apt install ros-melodic-serial
安装好后,在ROS终端中输入如下,创建ros_serial 功能包
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

catkin_create_pkg serial_port roscpp std_msgs serial
打开 cd serial_port/src
  将serial_port.cpp文件添加进去,
  //serial_port.cpp
#include
#include
#include
  int main(int argc, char** argv)
{
ros::init(argc, argv, “serial_port”);
//创建句柄(虽然后面没用到这个句柄,但如果不创建,运行时进程会出错)
ros::NodeHandle n;

//创建一个serial类serial::Serial sp;//创建timeoutserial::Timeout to = serial::Timeout::simpleTimeout(100);//设置要打开的串口名称sp.setPort("/dev/ttyUSB1");//设置串口通信的波特率sp.setBaudrate(115200);//串口设置timeoutsp.setTimeout(to);try{    //打开串口    sp.open();}catch(serial::IOException& e){    ROS_ERROR_STREAM("Unable to open port.");    return -1;}//判断串口是否打开成功if(sp.isOpen()){    ROS_INFO_STREAM("/dev/ttyUSB1 is opened.");}else{    return -1;}ros::Rate loop_rate(500);while(ros::ok()){    //获取缓冲区内的字节数    size_t n = sp.available();    if(n!=0)    {        uint8_t buffer[1024];    uint8_t IMU_data[15];        uint8_t Txbuffer[3]={0x01,0x02,0x03};        //读出数据        n = sp.read(buffer, n);                for(int i=0; i="=0xa5" &&buffer[i+1]="=0x5a&&" buffer[i+2]="=0x2e)" imu_data[0]="buffer[i+3];" imu_data[1]="buffer[i+4];" imu_data[2]="buffer[i+5];" imu_data[3]="buffer[i+6];" imu_data[4]="buffer[i+7];" imu_data[5]="buffer[i+8];" imu_data[6]="buffer[i+9];" break;="" }="" 16进制的方式打印到屏幕="" ros_info("read:="" %d",imu_data[0]);="" std::cout="" <<="" std::hex="" (imu_data="" &="" 0xff)="" "="" ";="" std::endl;="" 把数据发送回去="" %d",&imu_data);="" for(int="" i="0;" i<6;="" sp.write(txbuffer,="" 3);="" ros::rate="" loop_rate(50);="" loop_rate.sleep();="" 关闭串口="" sp.close();="" return="" 0;=""

在caktin_ws目录下catkin_make
然后,重新打开终端,运行roscore
然后在运行 $ rosrun serial_port serial_port
  注意,如果u***端口不正确可能不成功,
此时可以通过$ ls -l /dev |grep ttyUSB 来查看u***的端口号,在serial.cpp里面进行修改,修改保存完毕后,进行编译
再次运行$ rosrun serial_port serial_port
举报

更多回帖

发帖
×
20
完善资料,
赚取积分