TB3_OpenCR_rosserial_TEST - 8BitsCoding/RobotMentor GitHub Wiki

OpenCR์— ์˜ฌ๋ผ๊ฐ€๋Š” turtlebot3_core ์ฝ”๋“œ๋ฅผ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•œ๋‹ค.

// turtlebot3_core_config.h

// ...
#include <std_msgs/String.h>
// ...
std_msgs::String string_msg;
ros::Publisher string_pub("test_pub", &string_msg);
// turtlebot3_core.c

// ...
void setup() {
    // ...
    nh.advertise(string_pub);
    // ...
}

void loop() {
    // ...
    std_msgs::String string_msg;
    string_msg.data = "test_msgs";

    string_pub.publish(&string_msg);
    // ...
}

roscore ์—์„œ rqt๋ฅผ ์ผœ์„œ test_msgs๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธ


# Remote PC ์—์„œ ์‚ฌ์šฉ
$ roscore
$ ssh -p <port> <user>@<ip> # Turtlebot3๋กœ ์ ‘์†
TB3$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_bringup turtlebot3_remote.launch

rosserial์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋ณด๊ณ  ์‹ถ๋‹ค -> ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ๋‹ค ์ง€์šฐ๊ณ  rosserial / test msg๋งŒ ์‚ด๋ ค๋ณด์ž

#include <ros.h>

void setup()
{
  DEBUG_SERIAL.begin(57600);

  // Initialize ROS node handle, advertise and subscribe the topics
  nh.initNode();
  nh.getHardware()->setBaud(115200);

  // ...

  nh.advertise(string_pub);
}

void loop()
{
  std_msgs::String string_msg;
  string_msg.data = "test_msgs";

  string_pub.publish(&string_msg);

  nh.spinOnce();
}

์š”๋ ‡๊ฒŒ๋งŒ ํ•ด๋„ ๋œ๋‹ค.


์†ก์‹ ์ธก(OpenCR)์—์„œ๋Š” ์ €๋ ‡๊ฒŒ ํ•œ๋‹ค์น˜๊ณ  ์ˆ˜์‹ ์ธก(Turtlebot3)์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋‚˜?

  <node pkg="rosserial_python" type="serial_node.py" name="turtlebot3_core" output="screen">
    <param name="port" value="/dev/ttyACM0"/>
    <param name="baud" value="115200"/>
    <param name="tf_prefix" value="$(arg multi_robot_name)"/>
  </node>

rosserial python์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•˜๋ฉด๋œ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ