Saturday, June 3, 2017

Roomba Dashboard - A cli dashboard for irobot create 2

Roomba Dashboard

Background:

Roomba-Dash is a cli dashboard for the IRobot Create 2 platform. I got the roomba because I wanted to build a security robot for my home.  Since I was not familiar with the capabilities of the Roomba, I build a dashboard to understand the sensors.

Demo of the dashboard driving a Roomba.

Dashboard Details:

The dashboard is primarily used to get all the useful sensor data from the roomba. In addition it can also be used to send some of the commands to the Roomba. Particularly it can change between the different roomba modes (full, safe, passive). There are a couple of gauges that provide data about the current, volts and charge of the battery.  The batt. level gauges also provides the battery level as a percentage but shows it as a graph over time.

Motor current gauge shows the current drawn by the motors. Encoder, Rotation shows the various encoder (L,R), Radius, Angle and Distance travelled. This is requested about 3 times a second and they reset on every call. The IR code shows the IR signal that is received by omni and left, right sensors. The  cliff sensors show the signal level from the cliff sensors located beneath the roomba. In addition, if any of the sensors are triggered, they will also highlight in red. The velocity sensor shows the current velocity of the motors. The light bumper gauge shows the IR bumper signals from the 6 IR sensors across the front of the roomba. Similar to the cliff sensor gauge, this also lights up when a bump is detected. The wheel sensor tracks the wheel drops and the front bumper.


Code Build Details:

The dashboard is build in golang using termui and go-roomba libraries runs on top of a C.H.I.P single board computer. The code for the dashboard is available on github/deepakkamesh. Building the dashboard is fairly straight forward. Just download the code and 'go build bin/main.go'. Its important Download the github forked versions of these libraries or alternatively add my forked version as another remote and do a git pull. I have submitted by fixes as a pull request to the owners of the repos but yet to hear back from them. Until then either approaches outlines above should work. The second approach is preferable since it does not break the import paths.

Hardware Build Details:

The hardware uses a CHIP single board computer. Its running a headless debian version for the OS. The CHIP comes with only one usb that I needed for a webcam. So I connected the TX/RX from the headers to the connectors on the roomba. The details of how to do that are available on the roomba website. Please follow the 3.3V logic instructions as the CHIP uses 3.3v logic.

I decided to power the CHIP directly from the serial port on the Roomba which has always on power. The roomba website also has a tutorial on how to accomplish this.

In addition, I tied the BRC pin to a GPIO pin on the CHIP and I pulse it for a second every minute ti prevent the Roomba from sleeping. 

Post a comment if you have any questions. 

38 comments:

  1. Wow!You have got a dashboard to send signals and get to know about its sensors. Please also give tutorial to use this Robot Roomba for some personal work.

    ReplyDelete
  2. Australia and New Zealand are extraordinarily beguiling and stunning nation and this post is about both these nations so those are the write my essays nations they should read this and not miss this is rousing news and uncommon post.

    ReplyDelete
  3. 3E23EFDC07
    Sosyal medya hesaplarınızın etkileşimini artırmak için çeşitli yöntemler deniyorsanız, uygun beğeni paketleriyle fark yaratabilirsiniz. Özellikle, güvenilir platformlardan satın alacağınız Türk beğeni hizmetleri sayesinde içerikleriniz daha geniş kitlelere ulaşabilir. Bu noktada, türk beğeni satın almak, organik görünümünüzü destekleyerek profilinizin daha popüler hale gelmesine yardımcı olabilir. Doğru stratejilerle sosyal medya başarınızı güçlendirebilirsiniz.
    İçeriğinizi daha fazla kişiye ulaştırmak için çeşitli yöntemler deniyorsanız, özellikle YouTube'da etkileşimi artırmak adına youtube yorum satın alma seçeneğini değerlendirebilirsiniz. Bu sayede videolarınızın görünürlüğü ve popülerliği artarken, daha geniş bir izleyici kitlesine ulaşabilirsiniz. Ancak, bu tür hizmetleri kullanırken dikkatli olmak ve platform kurallarını göz önünde bulundurmak önemlidir. Sonuç olarak, doğru stratejilerle içeriklerinizi daha etkili hale getirebilirsiniz.
    İnternette popüler videoların daha fazla izlenmesini sağlamak isteyen birçok kullanıcı, çeşitli yöntemler aramaktadır. Özellikle "shorts izlenme hilesi" gibi terimler, bu konuda dikkat çekici çözümler sunmayı amaçlamaktadır. Ancak, bu tür hilelerin hesabınıza olumsuz etkileri olabileceği unutulmamalıdır. Daha sağlıklı ve kalıcı sonuçlar için organik izlenme yöntemlerini tercih etmek her zaman daha doğru olacaktır. [shorts izlenme hilesi](https://begenisatinal.com.tr/8998/shorts-izlenme-hilesi) hakkında detaylı bilgi almak için ilgili linke göz atabilirsiniz.
    Instagram kaydetme özelliği, kullanıcıların beğendikleri içerikleri daha sonra kolayca erişebilmek için saklamalarına olanak tanır. Bu işlemi daha uygun fiyatlarla yapmak veya satış fırsatlarından yararlanmak isteyenler, instagram kaydetme hizmetini tercih edebilirler. Böylece, beğenilen gönderileriniz güvenle saklanır ve ihtiyaç duyduğunuzda kolayca ulaşabilirsiniz. Bu hizmet sayesinde zaman kazanır ve içeriklerinizi düzenli tutabilirsiniz.

    ReplyDelete
  4. عند تأسيس منزل جديد أو تنفيذ مشروع تجاري، يكون تمديد النحاس أحد أهم الخطوات التي تحدد كفاءة نظام التكييف لاحقًا. فالتمديد الصحيح يضمن توزيع الغاز بشكل متوازن داخل الأنابيب ويمنع حدوث التسريبات التي تؤثر على أداء الجهاز.

    لذلك يحرص الكثير من العملاء في الرياض على البحث عن
    شركة تمديد نحاس بالرياض
    تقدم خدمات احترافية تعتمد على فنيين متخصصين وخامات عالية الجودة.

    إلى جانب ذلك، تقدم الشركة خدمات متكاملة تشمل
    كور خرسانة
    لتمرير التمديدات داخل الجدران والأسقف بطريقة آمنة.

    كما تتوفر خدمات حماية المباني مثل
    طارد الحمام
    للحفاظ على نظافة المباني والأسطح.

    ReplyDelete

YDLidar (lidar) X4 API in golang

YDLidar X4 This is a demo of the YDLidar using a golang API. The software supplied with the device only contains the drivers in C++ an...