Tuesday, July 11, 2017

Arduino motors and sensors with ROS interface Examples

Basic Mobile Robot w/ ROS



We will discuss a simple mobile robot that can be integrated to Robotic Operating System.
As we all knew ROS currently is the most available programs and libraries that we can used to build 
a good robot. ROS support robotics from hobby to industrial grade application of robotics.ROS is intended to be run on computer hardware, like the notebook you indicated. rosserial is intended to allow you to bridge physical hardware and sensors to the ROS computation graph using a micro controller (at this time, the Arduino has client libraries developed). rosserial should be used when the hardware doesn't already have a ready-made interface and driver (for example, you shouldn't use a GPS receiver with rosserial).


Requirements:
IMU
Motor with encoder
Odroid C1+
Ultrasonic
Laser range finder.


Objective:
To build a simple robot that can use a ROS.


Methodology:



Subscriber
A motor controller implemented on an Arduino will want to create a ROS Subscriber that will listen to a Twist Message on a given topic. Many people use /cmd_vel as the topic for this purpose.

Now, with a ROS core running, and the rosserial_python node running, you should see a /cmd_vel appear in a rostopic list command. You can use another node on your system to publish messages to /cmd_vel, that the Arduino will interpret into motor commands. The Arduino firmware should be able to turn a Twist message (linear and angular velocities) into appropriate motor commands for your platform.

Publisher
Another application may be reading an ultrasonic rangefinder to l physically interface the line sensor to  the Arduino, and then create a ROS Publisher. It could then make this message type a Float32 if you wanted to represent a floating point distance or perhaps an Int32, if you wanted to get the raw ADC values. These would then be published into the computation graph on the topic of your choice (say /rangefinder). You could then see these values by doing rostopic echo /rangefinder on the command line.


Integrating  Subscriber and Publisher
If the  robot can receive movement commands from ROS via /cmd_vel and can broadcast readings of the physical world, then you can start creating (or using) other ROS nodes to process this data and make decisions.

If the  robot can accept command velocities, can publish range scans, and can publish odometry information, you can start to use higher-level nodes for navigation, localization, and path planning.


Navigation


Localization


Path Planning







Summary:




Conclusions:



Saturday, July 8, 2017

Robotics Philippines (A long overdue)




Introduction:

Good day to all the readers, and we hope that this journey of  uncovering the reality of robotics should be studied ,implemented and create a tangible robotics platform.

The design of mobile robotics platform is essential to every ages of learner,users and researchers , in this techno blog we will try our best initiative to layout every methods of learning about robotics.

Since I was a kid Robotics had made me so fanatic of machine acting like a human,hence it had given me a lot of motivation. The only problem at the time was that when you are leaving in a barrio  everything thing would seems a fantasy. However, since  I was so enthusiastic to do something related to automation every electronics stuffs then were a treasures: damaged radio,cassette tapes,turn tables, RC motors and etc .  of stuff to feel me like I was on to  to study engineering,

I do  believe that encouragement to engage in Robotics is not enough to turn our place to engage in Robotics. Although that is a big factor, a lot of effort should be shared to them so that they can do robots not a toy. I don't think its a bit difficult but its true that every concern old people, the adults should be the proponents of this big effort-Engineer,Teachers, Researchers,Hobbyists. As much as possible we should take consideration and responsibility that we need to showcase to them how robots was done, the technology and foremost our own tangible outputs, and ending up questioning if we really have done robots? So if that is the main problem how can we teach a kid to learn robotics if we ourselves doesn't seem to know to innovate one. I believe there should be a continuity of example that must be shown to them from toys, to line follower to mechatronics to robotics. A wheeled, legged or winged robot. Well that is robotics.But not only that, where can we all purchase ,or outsource materials (electronics, cpu,mcu board, sensors,hard frame)?  Sad to say its seldom that you will get a deal from machinist  about precision, the fact is,  when accuracy  of framing or gearing project  they would simply reject it. For them, it is a complicated things, time consuming and less profits. Only to find out that their skills are very much outdated to the challenge new technologies like robotics development. So the solutions for the serious Roboticists are  to  deal to a machining company which price offer could blow out a whole project;s budget.

In short this was one of  hindrances why we could not widely pursue robotics. One thing more, even the old or adult hobbyist are vying to misrepresented the younger generations that a line follower toy is a robotic field a concept that perhaps is true but if we are doing for  decades it only to compromise the evolving technology of robotics and it turns out of just dreaming  and appearing to the kids -we simply a Roboticist. In my perception that system is not leading to a good example. The last but not the least ,is a question that where else did our Graduates  people,Masters and Doctorate gone? Where they simply enjoying the  the social stature they benefited from obtaining diplomas?  At what level the complex equations in math simply  make it to the understanding of average people?  Since Robotics requires higher mathematics (well it all goes down to algebra)  does it means the  breakthrough will fall only to  a limited people?  Well most of the developed countries  simplified all mathematical theories into actuality good for their graduate people efforts to contribute a mass of simplified knowledge comprehensive and understandable to every  constituent understanding. An interesting outcome was that robotics competition welcomes every  people irrelevant to their educational attainment.Let us look to the level of their robotics nowadays,how it incubates their new technologies ,and contribute to the wealth of their economy- a chain of efforts for success of every constituent in their country. So and so. Anyway this is it, and I must challenge myself to do this initiative hoping some people out there will do the same or much better.


Elementary Robotics.
Application of robotics in this stage is almost showing them a programmable toys which will give them interest in Robotics. A simple automation in controlling of a toy car will be a good example to teach them a moving machine and to its simple controls of run,directions, speed and some signalling ,warning of its state.

K-12 Robotics.
In this stage junior and senior high school can now learn computer programming  with application of mathematics  and common A.I must be included at this time a fuzzy logic.On the hardware side they are now well aware of CAD as there were lots of opensource or freeware on the internet. The combination physics and basic electronics will be their tools on the hardware side of robotics.The recommended platform for the first teaching course is the Arduino smart car, after mastering the said level they can proceed to a simple cart wheeled robot WiFi or blue-tooth controlled or has a built in coded AI.


BS College Robotics
In this stage a serious exploration of Robotics must be studied yet collaboration with other group of  students should be encourage ,ie; computer science students and mechanical engineering students, electronics and mechanical engineering , computer science with electrical engineering or computer engineering combine with IT,IMS and technicians.The focus is  applying higher mathematics in programming resulting to the application of AI( CS students are RockStar on this).Computer Engineering is reliable to the design of CPU, the bulky of Load processing, their skills can be used to data network ,cluster and also programming.Electronics engineering can participate the radio communication (beacon, GPS) and the route of robotics navigation,other course are contributory with their own arsenal of skills. The mobile platforms are 3D Printers, CNC Design, Robotics Arm ,Bi Pedal Robots and Autonomous wheeled Robots. Some tools that must be learn are ROS,Robotics Operating System,it is expected that they are able to integrate all the applications provided by the opensource community.


Graduate to Industry Robotics
In this stage we seek the opportunity to apply all knowledge,tools and design  into a tangible form of machine- as we can say Robot as we are using the field of Robotics. Robotics or Robot enthusiast  must works to help the community solve the basic problems of  life .Otherwise lets stop calling papers as it will not elevate the standard of life that we suffered today. Let us not hide for the benefits of those diploma and other credential putting us in the pedestal of nothingness except "Title".The focus of the robotics here should be in the Agriculture-Robotics, Security-Robotics-Aqua Robotics,Navigation and Transportation. It is also considered a recourse to simplify all theoretical knowledge into a reality that can be spoken and understand by a common people and younger generations.The stage where experienced technocrats, policy makers are put in pressure to deliver technology in the counter -no excuse.


Requirements:

Simplifying  hidden mysteries of Mathematics into the common tongue of average Filipinos.
Say it ,simplify into a language being expressed everyday in the life of every Filipino.
Harness an Opensource of free technologies of Robotics used by the Global Industry.
Let us compete and challenges ourselves into Robotics win or loss its nothing for the technological advancement of this country.
No more call of papers lets put the podium to call for the machines-Robotics.

Methodology:

I)Technology Transfer
Copy ,Cut and Paste
Opensource industrial grade technology
Outsourcing surplus staffs(frame and sensors)
Competitions as everybody is welcome Janitor to PhD

II) Education Training and Technology Language conversion
Elementary
High school
College

III) Coordination to Government Policy makers
Reduce administrator cost and shift the budget to sustain engineers/inventors
Reduce age of setting administrator who are funds of travels and too much expenditures
Put the budget to a nationwide grant of technology incubation
Put the budget to a nationwide competitions or innovation
Put the credential on the tangible outputs of technologies not the multiple choice of titles
Requires all the university and colleges to create machine the feasible budget as possible.


IV) Produce technological outputs
Regional Robotics products
National Robotics products
ASEAN Robotic products-lets raise who will will dominate Robotics in south east asia


Summary
A ....



Conclusions:
B...
...final edition and para phrasing will follow after the completion of the subject topics

Hokuyo 2D/3D Lidar








Introduction:





Objective :















Methodology:










Summary :









Conclusions:










LMS 200 SICK 2D/3D Lidar









Introduction:






Requirements:




Methodology:









Summary:




Conclusion:

Tuesday, March 28, 2017

ROS Setup and Installation






Installation

ROS Kinetic ONLY supports Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) and Jessie (Debian 8) for debian packages.

Configure your Ubuntu repositories


Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Setup your sources.list


Setup your computer to accept software from packages.ros.org.
  • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Source Debs are also available

Set up your keys


  • sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
.

Installation

First, make sure your Debian package index is up-to-date:
  • sudo apt-get update
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
In case of problems with the next step, you can use following repositories instead of the ones mentioned above ros-shadow-fixed


  • Desktop-Full Install: (Recommended) : ROS, rqtrviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
    • sudo apt-get install ros-kinetic-desktop-full


To find available packages, use:
apt-cache search ros-kinetic

Initialize rosdep

Before you can use ROS, you will need to initialize rosdeprosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init
rosdep update

Environment setup


It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.
If you just want to change the environment of your current shell, instead of the above you can type:
source /opt/ros/kinetic/setup.bash

If you use zsh instead of bash you need to run the following commands to set up your shell:
echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

Getting rosinstall

rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.
To install this tool on Ubuntu, run:
sudo apt-get install python-rosinstall