2018-01-01から1年間の記事一覧

ロボットの部品作成の為に3Dプリンタi3 Megaを購入

概要 ロボットを改造するために、3Dプリンタを使ってジグを作成していたが、DMM等に製作依頼をすると、100*30mm程度のサイズのジグでも1個1500円近くしてしまう。配送料も込みだし、この価格になるのもやむを得ないと思うが、気軽に頼むにはやは…

Thinkpad x280,UbuntuのCPUクロックの低下(サーマルスロットリング)対策 x1 carbonも同様

概要 Thinkpad x280(core i5 8250U)、Ubuntuの組み合わせでは電力制限のしきい値が低く設定されているため、高負荷処理時にCPU動作周波数が激減してしまう。いわゆるサーマルスロットリングが原因で発生している事象の模様。 海外のフォーラムを見ると、これ…

ROS melodic(Ubuntu18.04)でmap_server,gmapping,navigationパッケージを導入する

新しいPCを購入したので、Ubuntu18.04、ROS melodicを導入してみた。 ROS melodicはまだ多くのパッケージがapt-getでインストールできるようになっていないので、git から落としてきてmakeすることになる。 gmappingを使って地図を作り、ナビゲーションをし…

rqt_bagをclockオプション付きで起動する方法(ROS)

ros

経緯 rosbagと比較して、rqt bagはGUIで速度変更、再生時刻の変更が出来て便利。 しかし、rqtからrqt bagを起動すると、clockオプションをつけることが出来ないため、tfをうまく操作することが出来ず、gmapping等を実行することが出来なかった。 そのため、…

DJI Telloのモータ交換・修理方法を写真つきで詳しく紹介する

概要 DJI Telloがpythonで制御できると聞き、購入してみたが開封後30分でフリップ時に壁に衝突させ、モータが動かなくなってしまった。 モータを別途購入し、修理を行ったので記録として残しておく。修理にかかる作業時間は15分ほど、慣れていない人でも30分…

USBシリアル接続時に自動で書込権限を付与する(ubuntu,/dev/ttyACM0)

経緯 書き込み、実行権限の自動付与 経緯 ubuntuでUSBシリアルデバイス等を扱う際、挿入時に書き込み・実行権限が付与されないため、挿入のたびに毎回、 sudo chmod 777 /dev/ttyACM0として、いちいち権限をつけてやる必要がある。 特にロボット関係の機材は…

pipをアップグレードするとpip installがエラーで使えなくなる問題の解決方法(from pip import main; ImportError: cannot import name main)

経緯 解決方法 経緯 pip install --upgrade pipとしてpipをアップグレードすると、以下のエラーが出てpip installが出来なくなる問題が発生した。 どうもpip9〜pip10の移行に伴う問題の模様。 調べると様々な解決策が講じられているが、どれもあまりうまく行…

ダウンロード時間計算ツール

概要 楽天モバイルのスーパーホーダイに契約をして、通常は1Mbpsに帯域制限をして携帯電話を使用している。 ある程度大きなファイルサイズのものをダウンロードする際、1Mbpsだと何分かかるんだっけ・・・?と電卓をポチポチ叩いて計算するのが煩わしくなっ…

Googleドライブ共有リンク変換ツール(クリック一発で直接ダウンロード!)

概要 はてなブログでZipファイル等を公開する際、GoogleDriveのファイル共有機能を利用している。 しかし、GoogleDriveで作成したURLは、クリックすると以下画像のようなGoogleDrive画面が開いてしまい、ファイルをダウンロードするまでにひと手間かかってし…

見開きPDFのページ分割/トリミングアプリ (フリーソフト、非破壊自炊PDF)

フリーソフト概要 書籍等を私的利用のために、数ページ、スキャナでスキャンすることがあるが、iPad等で閲覧する際、見開きではなく1ページずつ表示したくなる。 しかし、見開きのPDFファイルを、左右1ページずつにトリミングし、分割したPDFに変換してくれ…

pyinstallerを使ったpythonコードのexe化と、処理時間の評価(onefileオプションの有無を含む)

概要 pyinstallerを使ってpythonスクリプトのexe化することがままあるが、exe化すると速度が遅くなるように感じる。(特に--onefileオプションを入れて一つのファイルにパッケージ化した場合) しかし、どの程度の速度低下があるのか定量的に測定した例がな…

Pythonでword,docxファイルを操作・置換する(python-docx)

概要 大量の文章ファイルを扱うとき、いちいちwordを使ってdocxの中身を変更するのは面倒。 Pythonを使ってある程度自動化できないか・・・と考えて調査したところ、簡単に実装できたのでまとめておく。 対象とする環境 OS異存なし Python2.7 概要 対象とす…

中心のずれた見開きスキャンPDFを2ページに分割する方法(Python,pypdf)

概要 参考書等を数ページスキャナで取り込み、タブレットに保存して、参照したいことがままある。 その際、なるべく綺麗に取り込みたいところだが、見開きでスキャンしてしまうと、以下のイメージのように、スキャンした部分でない余白部分が残ってしまう。 …

ROSのRvizにwaypointを表示させる方法(Python)

概要 rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS) - 技術メモ集にて、ウェイポイントを保存し、その順番通りにロボットを自律走行させる方法を記載した。 しかし、実際に自律走行させてみると、ウェイポイントを追加し…

ROS解説本4冊の書評と、開発スタイルに合わせたおすすめの入門書紹介(2018/10/20 実用ロボット開発のためのROSプログラミング追加)

概要 ROSの解説本として日本語で販売されている書籍として、「ROSではじめるロボットプログラミング」、「ROSロボットプログラミングバイブル」「プログラミングROS」の3冊がある。 どれも非常によくまとまっているが、それぞれ個性があるので、各書籍の感…

rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS)

概要 ROSのチュートリアル等では、RvizのGUIで指定した場所に自律走行させるところまでで終わっていることが多く、広い環境下でロボットをウェイポイントに沿って自律走行させる方法がまとまっていない。 そこで、本稿では、RvizのGUI上で指定したウェイポイ…

PythonでROSのRvizに基本図形を描画する簡単な方法

概要 PythonでROSのRvizに基本図形を描画する方法を記載する。 C++は以下のROSチュートリアルが参考になるが、Pythonで記載された例がないので、私のような「どうしてもPythonで書きたい・・・」という人のために、サンプルを記載しておく。 各項目の説明は…

日本とアメリカでアレグラの用量、用法が違う!理由を半減期を根拠に計算してみた

概要 アメリカ出張時に、薬局でアレグラの説明を読むと、日本と違うことが書かれている。 具体的に比較すると以下の通り。日本:60mgを1日2回 (合計120mg) アメリカ:180mgを1日1回アメリカは1日1回でいい代わりに、1日の用量が日本の1.5倍になっている。 1日1…

AlexaにLine経由でリマインドして貰うSkillを作った(Python, Line Notify API)

概要 Alexaアプリ第二弾。 今度はAlexaに話しかけることで、Lineに通知・リマインドしてくれるアプリを作った。 Echoに対して、 「アレクサ、リマインダーで⚪︎⚪︎とリマインドして」 と話しかけると、Lineに⚪︎⚪︎の部分を通知してくれる。[第一弾はこちら] 【A…

【Alexa Skill開発】LaunchRequest時にエラーになってしまう場合に確認すべき事項(Python)

概要 Alexaのスキルはシミュレータでもデバッグできるので、比較的デバッグがしやすい。 しかし、スキルが最初に呼び出された際の挙動がシミュレータでは確認できないため、エラーが発生した際のデバッグが困難。 気づいてみれば簡単なことだったけれど、結…

【Alexa Skill開発】Alexaに最寄り駅の次発電車の発車時刻を教えてもらう(AmazonEcho)

経緯 Amazon Echoを買ったので、自分でも面白いものが作れないか調べたところ、公式の解説がとてもよくまとまっている。 これなら簡単にできるな・・・ということで、練習問題を少し改造して、最寄り駅の次発、次々発、次々々発の電車の時刻を教えてくれるSk…

pythonを使って連番の画像を一括ダウンロードする

pythonを使って連番の画像を一括ダウンロードするスクリプトを書いたので、まとめておく。(スクリプトは一番下)https://www.xxxxxx/001.jpg https://www.xxxxxx/002.jpg . .というURLのjpgファイルを一括でダウンロードするためには、 url = "https://www.…

pythonを使ってディレクトリを簡単にzip圧縮する

pythonを使ってディレクトリを圧縮する方法を検索すると、リストを作成→zipfileを使って圧縮という方法がよく出てくる。 しかし、この方法は無駄に行数が長くなり面倒。 shutilを使うことで、もっと簡単にディレクトリを圧縮することができることがわかった…