Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

For example, in Figure 3, server_node provides a service, SetVelocity.

srv, to
change command velocity, vel. The service accepts the velocity value in float32
NEW and
format PRODUCTS FOCUS
returns the status FEATURES
in string format; “success” ifMOUSER NEWS
the requested velocity NEWS
els of the data being generated (or in ROS terms, pub- was set or “FAIL” if not.
Nodes
velocity_service_ros
ROS nodes are the executable programs
re the broadcasters
made in of ROS.a topic, while
They are subscriber
processes thatnodes client_node
. perform a specific task. ROS nodes can SetVelocity.srv
ROS Basic Concepts
communicate with each other by use of
X Motor control: geometry_msgs/Twist
<request>
_control’s node
ROS isclient
Somethe broadcaster.
oflibraries /cmd_vel
such
the basic as rospy,isof
concepts athe topic
Python
ROS, as
float32 vel
shown instring
Figure 1, are packages, nodes, X Wheel encoders: geometry_msgs/TwistStamped, ge
status Success vel = 2.5 mbps
ublishes. This means
client thatand
library, velocity_publisher provides
roscpp, a C++ client TwistWithCovarianceStamped
topics, services,
library.(Nodes
and messages.
can bevelocity
a topic).subscriber <response>
d on motor control or command
or/and a topic publisher. Nodes can also ROS topics communicate by sending messages (topic p
de is the lister, velocity_subscriber
provide or use a service. subscribes
ros_package Node to the /topic Message server_node
sages (topic subscriber) and must be on a matching da
s that velocity_subscriber accesses or uses the velocity
Topics <request>
For example, in Figure 2, the velocity information (co
elocity_publisher. <response>
Figure 3. Sample use of service.
ROS topics are the channels ofService the Figure 3. Sample use of service. velocity_publisher node wants to be accessed/used b
trol ros_application
data being generated (or in ROS terms, The client_node sends a request to set the command
node. If thevelocity to 2.5 mbps.
topic publisher, Once
velocity_publisher, uses d
published) by a ROS node.
Figure 1.velocity_
A ROS basic data flow.
server_node receives
ROS topics communicate by sendingthe request, it sends the response
Twist, of
the topic
For example, “success”.
subscriber,
in Figure velocity_subscriber, sho
3, server_node
cmd_vel /wheel_velocity
subscriber messages (topic publisher) or receiving provides a service, SetVelocity.srv, to
type as well.
In ROS,
Note:publisher
The ROSnodes basic are the discussed in
concepts Integrating
messages (topic subscriber)
the following ADI Solutions
paragraphs and
aremust
similarbe into changethecommand velocity, vel. The service
broadcasters of a topic, while subscriber
for both
nodes are theROS1 and ROS2.
listeners of a topic.
ROS Ecosystem
on a matching data type. accepts the velocity value in float32 format
Services
and returns the status in string format;
ADIexample,
For is an official member
in Figure ofvelocity
2, the the ROS-IndustrialThe Consortium—an
publisher-subscriber
“success” open-source
if the requested proj-
communication
velocity was set model is o
Package
In Figure 2, generic_motor_control’s node information (command velocity) from or “FAIL” if not.
ect that extends the advanced capabilities of ROStosoftware
cable to industrial-relevant
reply interactions that are often required in a
is the
Thebroadcaster.
ROS package /cmd_vel
is the ismain
the topic thesystem
organization velocity_publisher
of ROS node 5wants
programs to be
or nodes.
channels, messages are the data publishes.
that velocity_publisher in ROS-compatible
This
hardware and applications.
accessed/used by the velocity_subscriber
Being a part of this community, ADI has initially
The client_node sends a request to set
tar-
This is the most atomic build/release item in ROS. When
getedIfdedicated creating a ROS
modules geared package, Services
toward the the
industrial are allowing
domain. nodes to communicate by send
ent sensors.means that velocity_publisher provides node. the topic publisher, velocity_ command velocity to 2.5 mbps. Once
it’s important
velocity information to set up aondedicated
based motor ROS workspace. Thisdata
publisher, uses workspace is called the ing
type geometry_msgs/ a response.
server_node The publisher-subscriber
receives the request, it sends communica
sensors and control
applicable to the ROS message format: ADI has developed ROS drivers for different dedicated
wherein service modules. To showcase
descriptions, such as message type
catkin(orworkspace, wherein catkin is the official
command velocity). buildtopic
Twist, the system of ROS.velocity_
subscriber, the response of “success”.
the developed drivers and leverage the capabilities
subscriber, should have the same data type are specified. of ROS, ADI developed the
meras: sensor_msgs/Image, sensor_msgs/PointCloud Integrating ADI Solutions
Nodes
While ros_application’s node is the lister, well. Devices Autonomous Mobot (ADAM) as
asAnalog an in-house autonomous mobile
( ) velocity_subscriber
unit IMU sensor: sensor_msgs/Imu subscribes to the platform (see Figure 4). into
Service the
is a ROS
two-wayEcosystem
synchronous communicatio
ROS/cmd_vel.
topic nodes are Thisthe executable
means programs Services
that velocity_ made in ROS. They are processes that
is a client and a server. The server node is the one
performaccesses
subscriber a specific task.the
or uses ROS nodes can communicate with each other by use of
velocity ADI is an official member of the ROS-
information provided by velocity_publisher. The publisher-subscriber communication while the client
Industrial node is the open-source
Consortium—an one that sends the reques
ROS client libraries such as rospy, a Python client library, and roscpp, a C++ client
model is open-ended and not applicable from the server node.
project that extends the advanced
library. Nodes can be a topic subscriber or/and
Messages to replya topic publisher.
interactions that Nodes
are often canrequired
also capabilities of ROS software to industrial-
provide or use a service.3 in a distributed system. For example,
relevant hardware in Figure 3, server_node
and applications.5 Beingprovides a s
While topics are the data channels, change
a part of command velocity,ADI
this community, vel.has
The service accepts th
initially
Topics
messages are the data in ROS-compatible Services are allowing nodes to targeted dedicated modules geared
format and returns the status in string format; “succes
T OPERATING formatSySTEMS—INTRODuCING
applicable to different sensors. ThE ADI TRINAMIC
communicate MOTOR
by sending CONTROLLER
a request and ROS1 DRIVER
toward the industrial domain.
ROS topics are the channels of the data being generated ( or in ROS
receiving a response. The publisher- terms, pub- was set or “FAIL” if not.
Thelished ) by aare
following ROSsample
node. sensors and subscriber communication model uses .srv ADI has developed ROS drivers for different velocity_servic
applicable to the ROS message format: files wherein service descriptions, such as dedicated modules. To showcase the
In ROS, publisher nodes are the broadcasters of a type
message topic,ofwhile
request subscriber nodesare developed drivers and leverage theclient_node
and response,
• Time of flight (ToF) cameras: sensor_
are the listeners
msgs/Image, of a topic.
sensor_msgs/PointCloud specified. SetVelocity.srv
capabilities of ROS, ADI developed the
Analog Devices Autonomous Mobot
In Figure
• Inertial 2, generic_motor_control’
measurement s node isService
unit (IMU) sensor: the broadcaster.
is a two-way/cmd_vel
synchronous is the topic (ADAM) float32
as anvel in-house autonomous
sensor_msgs/Imu string status (see Figure 4). Success
that velocity_publisher publishes. This means communication model whereinprovides
that velocity_publisher there is mobile platform
• Motor control: geometry_msgs/Twist a client and a server. The server node is <response>
velocity information based on motor control (or command velocity).
the one that provides the service while
• Wheel encoders: geometry_msgs/
While ros_application’
TwistStamped, s node is the lister,the
geometry_msgs/
client node is the one that sends the
velocity_subscriber subscribes to the server_node
request and waits for a response from the
topic /cmd_vel. This means that velocity_subscriber
TwistWithCovarianceStamped
server node. accesses or uses the velocity
information provided by velocity_publisher. Figure 3. Sample use of service.

generic_motor_control ros_application The client_node sends a request to set the command


velocity_ velocity_ server_node receives the request, it sends the respons
/cmd_vel /wheel_velocity
publisher subscriber

Integrating ADI Solutions into the


ROS Ecosystem
Figure 2. Publisher-subscriber.
Figure 2. Publisher-subscriber. Figure 4. The ADAM.
ADI is an official member of the ROS-Industrial Consort
Messages ect that extends the advanced capabilities of ROS soft
While topics are the data channels, messages are the data in ROS-compatible hardware and applications.5 Being a part of this comm
www.mouser.com April 2024 15
format applicable to different sensors. geted dedicated modules geared toward the industrial
X ADI Trinamic motor controllers, which are complete, board-level solutions for tional drivers. At the time this article is published, it is only able to support CAN
embedded motion control, equipped with ADI Trinamic motion control exper- tional drivers. At the time this article is published, it is only able to support CAN
embedded motion control, equipped with ADI Trinamic motion control exper- interface ((specifically
interface
specifically
SocketCAN), although other interfaces are ongoing develop-
SocketCAN ), although other interfaces are ongoing develop-
tiseNEWS
and ADI’s analog process technology
MOUSER NEWS andFEATURES
power design skills.FOCUS NEW
1
mentPRODUCTS
and planned to be supported soon.
tise and ADI’s analog process technology and power design skills.1 ment and planned to be supported soon.

Ubuntu-Based Host PC
ADIS16470 ADBMS6948
ADIS16470 RunsUbuntu-Based Host PC
the Whole Software Stack
Miniature MEMS IMU ADBMS6948
16-Channel BMS
Runs the Whole Software Stack
Miniature MEMS IMU 16-Channel BMS Batteries
Batteries

TMCM-xxxx-AGV
TMCM-xxxx-AGV
ADI Trinamic Motor Controller EVAL-ADTF3175D-NXZ
ADI Trinamic Motor Controller EVAL-ADTF3175D-NXZ
ADI CMOS ToF
ADI CMOS ToF

Data Flow
Data Flow
Figure 5. A high level hardware diagram of the ADAM.
Figure 5. A high level hardware diagram of the ADAM.
Figure 5. A high level hardware diagram of the ADAM.

ADAM: Analog Devices • ADI Trinamic motor controllers, which DC (BLDC), the available interfaces include
Autonomous Mobot are complete, board-level solutions for CAN, EtherCAT®, RS-232, RS-485 and USB,
embedded motion control, equipped and protocols supported range from
ADAM is powered by ROS and is enabled with ADI Trinamic motion control Trinamic Motion Control VISIT
Language (TMCL™),
ANALOG.COM 3
by different ROS-powered devices. The expertise and ADI’s analog process CANopen®, over EtherCATVISIT
(CoE),ANALOG.COM
CANopen 3
platform shows how ADI’s ROS drivers technology and power design skills. or Modbus.
can be integrated into mobile robot
applications—specifically autonomous Figure 6 shows the high level ROS An IDE called TMCL-IDE is available to assist
navigation. architecture of the ADAM using ROS drivers the users to develop applications and allow
and multiple application/algorithm nodes easy reprogramming of these modules. It
Figure 5 shows the high level hardware needed for autonomous navigation. The uses either TMCL for standalone operation
diagram of ADAM with different modules. IMU data (/imu/data_raw) and ADI Trinamic or the standardized CANopen® protocol,
It mainly has the following devices motor controller feedback (/tmc_info) and it allows users to set parameters,
connected: are used as inputs for pose estimation, visualize data in real-time,
resulting in the robot’s odometry (/odom). and develop/debug
• ADIS16470 or IMU sensors based on The lidar data (/scan) is the primary input standalone
multiaxis combinations of precision for the simultaneous localization and applications.
gyroscopes, accelerometers, mapping (SLAM) algorithm for generating
magnetometers, and pressure sensors— a map; ToF data (/image_raw) can also be
which are primarily used as sensing used as input in other SLAM algorithms.
feedback to improve position/direction The move_base node will then wait for any
estimation. goal pose from the user and send velocity
commands (/cmd_vel) to the ADI Trinamic
• ADBMS6948, a multicell battery motor controller to move the robot.
monitor, measuring up to 16 series-
connected battery cells with very high ADI Trinamic Motor
measurement accuracy over the entire Controller ROS Driver
temperature range.
ADI Trinamic motor controllers (TMCs)
•  EVAL-ADTF3175D-NXZ or CMOS are complete, board-level solutions for
ToF camera offering the highest embedded motion control, equipped with
resolution in the market, and can ADI Trinamic motion control expertise as
be complemented with depth well as ADI’s analog process technology
computation and processing, laser and power design skills.1 Supporting
drivers, power management, and various types of motors like single-/
development tools with reference multiple-axis stepper and brushless
firmware/software.

16 April 2024 www.mouser.com

You might also like