Professional Documents
Culture Documents
Legged Robotic System
Legged Robotic System
Internship Report
2024 July
Submitted by
1.Kedar Dhavale
2.Avinash Chandore
3.Vaibhav Pangarkar
4.Sainath Ingle
Mentor
Abhijit Kamble, Sc 'F'
R&DE(E), DRDO, Pune
Index
1.Introduction
2.Background
3.Problem Statement
4.Hardware Requirments
5.software requirements
6.Implementation
7.References
1. Introduction
3. Problem Statment :
To reduce the response time of the robot which is less than 1 ms.
Software Requirments :
● Operating System
● ROS Distribution
● DDS Implementation
● Real-Time Middleware and Libraries
● Development Tools
● Google Flutter
ROS Distribution :
Latest stable release of ROS 2, such as Foxy Fitzroy, Galactic
Geochelone, or Humble Hawksbill.
ROS 2 has better support for real-time operations compared to ROS
DDS Implementation:
Fast DDS & Cyclone DDS:
Development Tools:
Profiling and Debugging Tools:
● perf: Performance analysis tool for Linux.
● Valgrind: Instrumentation framework for building dynamic
analysis tools.
● GDB: GNU Debugger for debugging applications.
Google Flutter:
Combination with ros to make an application.
Flutter is Google SDK to build mobile applications for both iOS and
Android. Robot Operating System is a framework for making robots.
We would combine these technologies and build an application to
control a robot.
Hardware Requirments :
SRS Diagram :
Architecture Overview
Implementation :
Integrate ROS2 with VIM
1. Install ROS
2. Install Vim
3. Setup resources
4. Create Environment
5. Create binary for the Hardware control and add a node
import 'package:roslib/roslib.dart';
@override
Ros ros;
Topic chatter;
Topic counter;
Topic cmd_vel;
@override
void initState() {
ros = Ros(url:
'ws://192.168.1.4:9090');
chatter = Topic(
ros: ros,
name: '/chatter',
type: "std_msgs/String",
reconnectOnClose: true,
queueLength: 10,
queueSize: 10);
cmd_vel = Topic(
ros: ros,
name: '/cmd_vel',
type: "geometry_msgs/Twist",
reconnectOnClose: true,
queueLength: 10,
queueSize: 10);
counter = Topic(
ros: ros,
name: '/counter',
type: "std_msgs/String",
reconnectOnClose: true,
queueSize: 10,
queueLength: 10,
);
super.initState();
ros.connect();
await chatter.subscribe();
await counter.advertise();
await cmd_vel.advertise();
setState(() {});
await counter.publish(msg);
print('done publihsed');
await cmd_vel.publish(twist);
print('cmd published');
await chatter.unsubscribe();
await counter.unadvertise();
await ros.close();
setState(() {});
@override
return StreamBuilder<Object>(
stream: ros.statusStream,
return Center(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
ActionChip(
label: Text(snapshot.data
== Status.CONNECTED
? 'DISCONNECT'
: 'CONNECT'),
backgroundColor:
snapshot.data == Status.CONNECTED
? Colors.green[300]
: Colors.grey[300],
onPressed: () {
print(snapshot.data);
if (snapshot.data !=
Status.CONNECTED) {
this.initConnection();
} else {
this.destroyConnection();
},
),
StreamBuilder(
stream:
chatter.subscription,
builder: (context2,
snapshot2) {
if (snapshot2.hasData) {
return Text('$
{snapshot2.data['msg']}');
} else {
return
CircularProgressIndicator();
},
),
RaisedButton(onPressed: () {
publishCounter();
}),
RaisedButton(onPressed: () {
publishCmd();
}),
],
),
);
},
);
2. https://www.spiceworks.com/tech/artificial-intelligence/
articles/what-is-robot-operating-system/
3. https://flutter.dev/
4. https://docs.ros.org/en/foxy/index.html