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์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ๋ฉด๋๋ค.