ROS2 memungkinkan kita membuat node menggunakan bahasa Python. Di bawah ini adalah panduan lengkapnya.
Arahkan terminal ke folder berikut:
cd ~/ros2_ws/src/my_py_pkg/my_py_pkgBuat file node:
touch my_first_node.pyBuka file my_first_node.py dan masukkan kode berikut:
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
def main(args=None):
rclpy.init(args=args)
node = Node("py_test_node")
rclpy.spin(node)
node.get_logger().info("Hello ROS2")
rclpy.shutdown()
if __name__ == "__main__":
main()chmod +x my_first_node.pyMenjalankannya langsung (tidak disarankan untuk produksi):
./my_first_node.pyNamun, cara terbaik adalah melalui instalasi package.
Buka file setup.py, dan cari bagian entry_points lalu ubah seperti ini:
entry_points={
'console_scripts': [
'py_node = my_py_pkg.my_first_node:main'
],
},Kembali ke folder workspace:
cd ~/ros2_ws
colcon build --packages-select my_py_pkgJika berhasil, file Python Anda akan tersedia di:
install/my_py_pkg/lib/my_py_pkg/py_node
source install/setup.bash
ros2 run my_py_pkg py_nodeContoh Node Python menggunakan class (lebih fleksibel):
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
class MyNode(Node):
def __init__(self):
super().__init__("py_test")
self.counter_ = 0
self.get_logger().info("Hello ROS2!!")
self.create_timer(0.5, self.timer_callback)
def timer_callback(self):
self.counter_ += 1
self.get_logger().info(f"Hello {self.counter_}")
def main(args=None):
rclpy.init(args=args)
node = MyNode()
rclpy.spin(node)
rclpy.shutdown()
if __name__ == "__main__":
main()| 🏠 Menu Utama |
|---|