Roslisp Usage
Supplement to roslisp wiki
Manage Node
start-ros-node
(start-ros-node "node_name")
More
shutdown-ros-node
(shutdown-ros-node)
with-ros-node
(with-ros-node ("node_name")(...));; for long running task/service, use:(with-ros-node ("node_name" :spin t)(...))
node-status
(node-status);; returns either :running or :shutdown
Messages
make-message
;; use symbol as msg-type(make-message 'std_msgs-msg:String:data "Hello World");; use string as msg-type(make-message "std_msgs/String":data "Hello World");; fill in nested fields(make-message "geometry_msgs/PoseStamped":header (make-message "std_msgs/Header":frame_id "map")(:w :orientation :pose) 1.0)
symbol-codes
;; use symbol as msg-type(symbol-codes 'sensor_msgs-msg:Range);; use instance as msg-type(symbol-codes (make-message "sensor_msgs/Range"));; returns: ((:ULTRASOUND . 0) (:INFRARED . 1))
symbol-code
(symbol-code 'sensor_msgs-msg:Range :ultrasound);; returns: 0
code-symbols
(code-symbols 'visualization_msgs-msg:Marker 0);; returns: ((:ARROW . 0) (:ADD . 0) (:MODIFY . 0))
code-symbol
(code-symbol 'visualization_msgs-msg:Marker 0);; returns: :ARROW (first found)
Time
ros-time
(ros-time);; returns the number of seconds since January 1st, 1970
More
Logging
ros-info
(ros-info (foo bar) "Hello, ~A" "World");; outputs: [(FOO BAR) INFO] 1625730154.129: Hello, World(ros-info (monitor) (< battery-level 20) "Battery Low");; The second argument can be a condition, works like `ROS_INFO_COND` in roscpp
More